JS的设计模式

定义

1
设计模式的定义:在面向对象软件设计过程中针对特定问题的简洁而优雅的解决方案

简单来说,设计模式是解决某个特定场景下对某种问题的解决方案。

以下是几种常见的JS设计模式

单例模式

单例模式提供了一种将代码组织为一个逻辑单元的手段,这个逻辑单元中的代码可以通过单一变量进行访问。

单体模式的优点是:

1.可以用来划分命名空间,减少全局变量的数量。
2.使用单体模式可以使代码组织的更为一致,使代码容易阅读和维护。
3.可以被实例化,且实例化一次。

适用场景:

例如弹窗,无论点击多少次,弹窗只应该被创建一次。

单例的例子

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class CreateUser {
constructor(name) {
this.name = name;
this.getName();
}
getName() {
return this.name;
}
}
// 代理实现单例模式
var ProxyMode = (function() {
var instance = null;
return function(name) {
if(!instance) {
instance = new CreateUser(name);
}//如果已经实例化则返回实例,反之则实例化一个实例
return instance;
}
})();
// 测试单体模式的实例
var a = new ProxyMode("aaa");
var b = new ProxyMode("bbb");
// 因为单体模式是只实例化一次,所以下面的实例是相等的
console.log(a === b); //true

装饰者模式

1
装饰者模式的定义:在不改变对象自身的基础上,在程序运行期间给对象动态地添加方法。