成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

JS設(shè)計模式-單例模式

qpal / 1451人閱讀

摘要:以上,吐槽完畢設(shè)計模式主要分為三大類創(chuàng)建型模式結(jié)構(gòu)型模式行為模式。單例模式所謂單例模式,是指僅實例化該類一次,該實例提供一個眾所周知的全局訪問點。單例模式暫時這么些,如果后續(xù)了解更多會默默補充上來,下一次會分享工廠模式。

初入js坑時,滿臉懵逼的我認為設(shè)計模式就該是后端頭疼的,對,頭疼,蓋因粗略掃描下來也就十幾二十種吧,彼時頗有種隔岸觀火看到你過得不好我也就安心的自得。染鵝,打臉啪啪的,實不應(yīng)忘記javascript前可不是白綴個java的,怎么能不趟一下設(shè)計模式這“渾水”。
--以上,吐槽完畢

設(shè)計模式主要分為三大類:創(chuàng)建型模式、結(jié)構(gòu)型模式、行為模式。本篇只涉及創(chuàng)建型模式,表問我為什么,因為其他兩種我也不了解,淚目。

所謂創(chuàng)建型模式,是指基于創(chuàng)建對象的概念。單例模式、工廠模式、抽象工廠模式就屬于典型的創(chuàng)建型模式。

單例模式

所謂單例模式,是指僅實例化該類一次,該實例提供一個眾所周知的全局訪問點。為什么要限制僅實例化一次呢?因為全局只需要一個poly啊。例如在封裝組件Alert的時候,只需要實例化一次,將該實例掛在全局對象下,這樣除了第一次調(diào)用的時候需要實例化,后續(xù)都是在確認已有Poly實例后,直接調(diào)用已有的唯一實例,只是需要傳入不同的提示語句作為參數(shù)。

- 懶漢式

// code 1
var poly = (function(){
   var instance;
   var Poly = function(){
      this.name = "Poly";
   };
   return {
      getInstance: function(){
         if (!instance) {
            instance = new Poly();
            console.log("init onece");
         }
         return instance;
      }
   }
})();

運行結(jié)果如下:

以上代碼,只打印了一次init onece,除了第一次走進if (!instance)條件語句中進行實例化,后續(xù)兩次并沒有實例化,而是直接返回Poly的實例。

- 餓漢式

你應(yīng)該看出來了,以上代碼是在調(diào)用poly對象的getInstance方法時才進行實例化,還有一種情形是poly對象獲得的直接是Poly類的一個實例,如下:

// code 2
var poly = (function(){
   var instance;
   var Poly = function(){
      this.name = "Poly";
   };
   if (!instance) {
      instance = new Poly();
      console.log("init onece");
   }
   return instance;
})();

運行結(jié)果如下:

code 1 和 code 2所展示的是單例模式的兩種使用方式:懶漢式和餓漢式(這名字略粗獷的趕腳?蜜汁微笑?)。懶漢式即延遲到使用時才實例化,餓漢式即一開始加載類時就實例化。前者省空間,后者省時間,按需食用,oh不,按需使用。

單例模式暫時這么些,如果后續(xù)了解更多會默默補充上來,下一次會分享工廠模式。
話說,貌似說了很多“下一次”這類話?難怪懂得這么多道理還減不好這場肥。

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

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/81216.html

相關(guān)文章

  • JS 單例模式

    摘要:但是如何在對構(gòu)造函數(shù)使用操作符創(chuàng)建多個對象的時候僅獲取一個單例對象呢。單例的實例引用單例構(gòu)造函數(shù)單例私有屬性和方法暴露出來的對象改進之前在構(gòu)造函數(shù)中重寫自身會丟失所有在初始定義和重定義之間添加到其中的屬性。 1. 單例模式 單例模式 (Singleton) 的實現(xiàn)在于保證一個特定類只有一個實例,第二次使用同一個類創(chuàng)建新對象的時候,應(yīng)該得到與第一次創(chuàng)建對象完全相同的對象。當創(chuàng)建一個新對象...

    姘存按 評論0 收藏0
  • 淺談js單例模式

    摘要:單例模式說到單例設(shè)計模式,中經(jīng)常使用的單例模式通常分兩種,懶漢模式和餓漢模式懶漢模式簡單寫了下私有化構(gòu)造函數(shù)在獲取實例的方法中返回實例化對象雖然很多大佬都寫過啦,但是小生為了加深記憶便再寫一遍雖然實現(xiàn)了單例模式,但是未考慮到線程安全,多個線 java單例模式 說到單例設(shè)計模式,Java中經(jīng)常使用java的單例模式通常分兩種,懶漢模式和餓漢模式 懶漢模式 class singleDemo...

    draveness 評論0 收藏0
  • js設(shè)計模式--單例模式

    摘要:文章系列設(shè)計模式單例模式設(shè)計模式策略模式設(shè)計模式代理模式概念單例模式的定義是保證一個類僅有一個實例,并提供一個訪問它的全局訪問點。在開發(fā)中,單例模式的用途同樣非常廣泛。 前言 本系列文章主要根據(jù)《JavaScript設(shè)計模式與開發(fā)實踐》整理而來,其中會加入了一些自己的思考。希望對大家有所幫助。 文章系列 js設(shè)計模式--單例模式 js設(shè)計模式--策略模式 js設(shè)計模式--代理模式 概念...

    CloudwiseAPM 評論0 收藏0
  • js常用設(shè)計模式實現(xiàn)(一)單例模式

    摘要:什么是設(shè)計模式設(shè)計模式是一種能夠被反復(fù)使用,符合面向?qū)ο筇匦缘拇a設(shè)計經(jīng)驗的總結(jié),合理的使用設(shè)計模式能夠讓你得代碼更容易維護和可靠設(shè)計模式的類型共分為創(chuàng)建型模式,結(jié)構(gòu)型模式,行為型模式三種創(chuàng)建型模式創(chuàng)建型模式是對一個類的實例化過程進行了抽象 什么是設(shè)計模式 設(shè)計模式是一種能夠被反復(fù)使用,符合面向?qū)ο筇匦缘拇a設(shè)計經(jīng)驗的總結(jié),合理的使用設(shè)計模式能夠讓你得代碼更容易維護和可靠設(shè)計模式的類型...

    EscapedDog 評論0 收藏0
  • 從ES6重新認識JavaScript設(shè)計模式(一): 單例模式

    摘要:什么是單例模式單例模式是一種十分常用但卻相對而言比較簡單的單例模式。對象就是單例模式的體現(xiàn)??偨Y(jié)單例模式雖然簡單,但是在項目中的應(yīng)用場景卻是相當多的,單例模式的核心是確保只有一個實例,并提供全局訪問。 1. 什么是單例模式? 單例模式是一種十分常用但卻相對而言比較簡單的單例模式。它是指在一個類只能有一個實例,即使多次實例化該類,也只返回第一次實例化后的實例對象。單例模式不僅能減少不必要...

    G9YH 評論0 收藏0

發(fā)表評論

0條評論

qpal

|高級講師

TA的文章

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