单例模式
- 确保这个类只有一个实例,并且自动实例化并向整个系统提供这个实例.
解释: 构造函数是静态的,并且有一个当前类的静态成员变量,我们要提供一个静态方法给外面一个实例,实例化只能放到内部进行实例.
作用是确保一个只有一个实例的存在
比如:web页面的计数器序列化生成器等都可以使用单例模式 2. 缺点会改变作用域中的变量值,所以在其他地方使用该类的时候,状态会随时被修改,所以一般用于工具类的形式进行提供,无状态的类 3.
function a(){
var o = new Object();
o.jishu = function() {
console.log('我是单例模式')
}
return o
}
var aa = aa()
aa.jishu()
简单工厂模式
又称为静态工厂方法模式,它属于类创建型模式,可以根据不同的参数返回不同类的实例,简单的工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类.
优点 1.程序员不用关心怎么创建的,只关心怎么使用 缺点 2.就是比较死,不够灵活,新增一个产品的话就会麻烦.
function Person(name) {
if(name == 'a') {
return new Array()
}else {
retrun new Number()
}
}
工厂模式
- 新增产品就开一个子工厂, 大工厂只提供方法, 是因为面向对象程序设计中,有一个重要的原则是开闭原则,开闭原则规定程序对于扩展是开放的,对于又该是封闭的.