核心提示: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。
单例模式的出现,意味我们系统中的模块,要不是紧密的耦合在一起的,要不是过于松散的状态,所以要考虑的是——我们是否重新对我们的模块进行设计。
在实践中,我们的需要一个对象,把其他的相关的对象联系起来。就需要用到单例模式。