核心提示:Singleton(单例)模式限制了类的实例化次数只能一次。该实例不存在的情况下,可以通过一个方法创建一个类来实现创建类的新实例。如果该实例存在,则会则会返回该对象的一个引用。应该有这样的一种理解,单...
Singleton(单例)模式限制了类的实例化次数只能一次。该实例不存在的情况下,可以通过一个方法创建一个类来实现创建类的新实例。如果该实例存在,则会则会返回该对象的一个引用。
应该有这样的一种理解,单例模式既不是对象,也不是返回的一个类,而是描述了一种结构。
var singleton = {
var instance;
function init(){
var a = 1;
return {
b: 2,
fun: function(){
console.log(a);
}
}
}
return {
getInstance: function(){
if(!instance){
instance = init();
}
return instance;
}
}
}
通过这样的方式,返回一个仅仅实例化一次的instance——就是单例模式。
毫无疑问,单例模式作为一个静态的实例来实现,它可以延迟构建,直到需要使用静态实例时,无需使用资源或内存。
从单例模式本身触发,它在 JavaScript 的角度出发,可以作为我们的全局配置文件——config.js。
单例模式的出现,意味我们系统中的模块,要不是紧密的耦合在一起的,要不是过于松散的状态,所以要考虑的是——我们是否重新对我们的模块进行设计。
在实践中,我们的需要一个对象,把其他的相关的对象联系起来。就需要用到单例模式。


