第四章 單例模式


定義

單例模式的定義為: 保證一個類僅有一個實例,并提供一個訪問它的全局訪問點; 其核心思想就是確保只有一個實例,并提供全局訪問。

前端頁面中經(jīng)常遇到的登錄框就是一個單例,它有且只有一個存在。如下面的程序:

    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;
        }
    }

另外我們經(jīng)常遇到的全局變量,如:var aa=1,它在全局只有一個的,也屬于一種單例(當(dāng)然這個單例是js語言設(shè)計的問題)。為了解決變量名污染問題,需用namespace來進(jìn)行解決:

    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";

單例模式是一種非常簡單并且實用的模式,在合適的適合創(chuàng)建對象,并且之創(chuàng)建唯一一個。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容