您现在的位置:首页 >> 前端 >> 内容

设计模式之Singleton(单例)模式实例讲解

时间:2018/3/6 15:57:35 点击:

  核心提示: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。

单例模式的出现,意味我们系统中的模块,要不是紧密的耦合在一起的,要不是过于松散的状态,所以要考虑的是——我们是否重新对我们的模块进行设计。

在实践中,我们的需要一个对象,把其他的相关的对象联系起来。就需要用到单例模式。

作者:网络 来源:mapbar_fro