第四章 单例模式


定义

单例模式的定义为: 保证一个类仅有一个实例,并提供一个访问它的全局访问点; 其核心思想就是确保只有一个实例,并提供全局访问。

前端页面中经常遇到的登录框就是一个单例,它有且只有一个存在。如下面的程序:

    var createSingleLoginLayer = function(){
        var loginDiv;
        return funciton(){
            if(!loginDiv){
                loginDiv = "登录框";
            }
            return loginDiv;
        }
    }
    
    // 惰性单例
    Singleton.getInstance = function(){
        var instance = null;
        return function( name ){
            if(!instance){
                instance = new Singleton(name);
            }
            return instance;
        }
    }

另外我们经常遇到的全局变量,如:var aa=1,它在全局只有一个的,也属于一种单例(当然这个单例是js语言设计的问题)。为了解决变量名污染问题,需用namespace来进行解决:

    var _genPackage = function(_namespace){
        if (!_namespace||!_namespace.length) return null;
        var _package = window;
        for(var a=_namespace.split('.'),
                l=a.length,i=(a[0]=='window')?1:0;i<l;
                _package=_package[a[i]]=_package[a[i]]||{},i++);
        return  _package;
    };
    
    // _genPackage("const").name = "ahu";

单例模式是一种非常简单并且实用的模式,在合适的适合创建对象,并且之创建唯一一个。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容