前言
模式是在某一背景下某个问题的一种解决方案。
设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。
为了保证代码的可靠性、提高代码的复用率、使代码更容易被维护和阅读,我们需要了解并合理使用设计模式。
日常开发中,一些特定的场景下你的处理方法可能并不是很理想,往往这时借助一些设计模式可以让你优雅而高效的实现这些逻辑,下面就介绍一些虽然不是最全的但一定是最常用的设计模式。
单例模式:
**定义:**一个类只返回一个实例,一旦创建再次调用就直接返回。
**使用场景:**比如自定义弹窗,无论你程序中多少调用,都只应创建一个弹窗对象。
class CreateUser {
constructor(name) {
this.name = name;
this.getName();
}
getName() {
return this.name;
}
};
const ProxyMode = (() => {
let instance = null;
return (name) => {
if(!instance) {
instance = new CreateUser(name);
}
return instance;
}
})();
let a = ProxyMode('vn');
let b = ProxyMode('lb');
console.log(a, b); // vn vn 单例模式只会创建一次实例
策略模式:
**定义:**定义一个策略类只专注与各方法算法实现,定义一个接口调用这些方法。
特点:代码优雅,可读性高。
// 策略类
const levelObj = {
"A": money => money * 4,
"B": money => money * 3,
"C": money => money * 2
}
// 环境类 封装调用接口
const getMoney = (level, money) => levelObj[level]