国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

JS 設計模式 四(單例)

1fe1se / 1926人閱讀

摘要:所以使用單例會更好的控制全局變量。懶加載單例模式多數都是在加載腳本的時候被創(chuàng)建出來。不過對于一些使用方式單例適合在用到的時候被加載,所以需要一個可以懶加載的單例。

單例

單例是一個全局變量,使用單例可以更好的控制全局變量,還可以利用分支技術來封裝瀏覽器之間的差異。網頁中使用全局變量由于可以被重寫風險很大。所以使用單例會更好的控制全局變量。

懶加載

單例模式多數都是在加載腳本的時候被創(chuàng)建出來。不過對于一些使用方式單例適合在用到的時候被加載,所以需要一個可以懶加載的單例。

分支

是一種區(qū)分運行環(huán)境差異的技術,更加有效的針對加載的環(huán)境來定制代碼,達到更好的靈活性。

代碼
var os = require("os");
Singleton = (function () {
  var uniqueInstance; // 單例實體
  constructor = function () { // 單例初始化
    return function Singleton () {
      var count = 10;
      function initCount(){
        count = 10;
      }
      this.getCount = function () {
        return count;
      }
      this.setCount = function (value) {
        count = value;
      };
      this.init=function(){
        initCount();
      }
    };
  }();

  return {
    getInstance: function () {
      if (!uniqueInstance) { // 判斷是否初始化過
        uniqueInstance = new constructor();
      }
      return  (os.type()==="Windows_NT")?uniqueInstance:undefined;//單例分支使單例有更高的兼容性
    }
  }
})();
var S=Singleton .getInstance();//懶加載,在這里開始加載和創(chuàng)建實例。
console.log(S.count);
console.log(S.getCount());
S.setCount(550);
console.log(S.getCount());
//S.initCount();
S.init();
console.log(S.getCount());
總結

單例主要在于代碼的整潔性,是全局變量變得可控,使用懶加載可以減少不必要的內存消耗。分支提高不用環(huán)境的兼容性,只需判斷一次環(huán)境而不用在每次使用都判斷環(huán)境。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/87758.html

相關文章

  • PHP設計模式單例模式(Singleton)

    摘要:一什么是單例設計模式單例模式,也叫單子模式,是一種常用的軟件設計模式。在應用這個模式時,單例對象的類必須保證只有一個實例存在。 一、什么是單例設計模式 單例模式,也叫單子模式,是一種常用的軟件設計模式。在應用這個模式時,單例對象的類必須保證只有一個實例存在。 二、單例模式的技巧 利用$_instance私有變量來保存類的唯一實例化對象; 設計一個getInstance對外公開的函數,...

    余學文 評論0 收藏0
  • 常用設計模式

    摘要:工廠設計模式工廠設計模式,主要用于進行實例化對象時的解耦操作,避免使用關鍵字實例化對象,通過反射,根據類名稱動態(tài)創(chuàng)建對象示例靜態(tài)工廠模式構造方法私有化獲取指定類名稱的對象動態(tài)代理模式動態(tài)代理模式,主要用于對同一接口子類的相同邏輯進行代理操作 工廠設計模式 工廠設計模式,主要用于進行實例化對象時的解耦操作,避免使用new關鍵字實例化對象,通過反射,根據類名稱動態(tài)創(chuàng)建對象 示例: pa...

    fizz 評論0 收藏0
  • JS或Jquery

    摘要:大潮來襲前端開發(fā)能做些什么去年谷歌和火狐針對提出了的標準,顧名思義,即的體驗方式,我們可以戴著頭顯享受沉浸式的網頁,新的標準讓我們可以使用語言來開發(fā)。 VR 大潮來襲 --- 前端開發(fā)能做些什么 去年谷歌和火狐針對 WebVR 提出了 WebVR API 的標準,顧名思義,WebVR 即 web + VR 的體驗方式,我們可以戴著頭顯享受沉浸式的網頁,新的 API 標準讓我們可以使用 ...

    CatalpaFlat 評論0 收藏0
  • 理解php單例模式

    摘要:二為什么用單例實際項目中像數據庫查詢,日志輸出,全局回調,統(tǒng)一校驗等模塊。單例模式的好處減少頻繁創(chuàng)建,節(jié)省了。因此在單例模式必須包含三要素私有化構造函數,私有化。 單例作為一個最經典的設計模式之一,到底什么是單例?為什么要用單例?怎么設計單例?php中單例如何具體實現(xiàn)? 一、什么是單例 wiki百科:單例模式,也叫單子模式,是一種常用的軟件設計模式。 在應用這個模式時,單例對象的類必須...

    xi4oh4o 評論0 收藏0
  • 設計模式(1)單例模式

    摘要:既能保證延遲加載,又能保證線程安全枚舉上面的四種方案都有兩個弊端需要額外的工作進行序列化,否則每次反序列化的結果都是一個新的實例可通過反射機制強行調用私有構造器實現(xiàn)創(chuàng)建多個對象而這種方案完美的解決了上述兩種問題 一.什么是單例模式? 單例是指在程序中某個類只能有一個實例,一些管理器和控制器常被設計成單例模式(如Spring容器的bean實例默認都是單例模式存在的) 二.單例有什么好處?...

    zhichangterry 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<