久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

不可不知的JavaScript,、 ES6、TypeScript 設(shè)計模式之單例模式

 新用戶26922hFh 2022-01-19

不可不知的JavaScript,、 ES6,、TypeScript 設(shè)計模式之單例模式

  什么是單例

  單例模式是非常常用的一種設(shè)計模式,雖然你可能都不知道你在使用,,單例模式中 對象類需要保證只有一個實例存在,。單例就是保證一個類只有一個實例,實現(xiàn)的方法一般是先判斷實例存在與否,,如果存在直接返回,,如果不存在就創(chuàng)建了再返回,以確保了一個類只有一個實例對象,。

  舉個例子,,就像每個人都只能有一個身份證,你沒有身份證可以辦理一個,但如果有了再想辦理多一個身份證,,那么對不起,,不可能,這種情況就叫單例,。

  不可不知的JavaScript,、 ES6、TypeScript 設(shè)計模式之單例模式

  實現(xiàn)單例模式的方式有很多,,比如使用對象字面量的方式是最常用的創(chuàng)建方式:

  不可不知的JavaScript,、 ES6,、TypeScript 設(shè)計模式之單例模式

  但這種方式并不能夠被實例化,僅能使用一次,。并且所有的屬性和方法都暴漏在外面,,很容易造成命名空間的污染,所以說并不那么的優(yōu)雅,。

  那么我們開始對上面的代碼進(jìn)行一次優(yōu)化,,讓它只暴漏我們想暴漏的方法和屬性。

  不可不知的JavaScript,、 ES6,、TypeScript 設(shè)計模式之單例模式

  我們在上面的函數(shù)中創(chuàng)建了私有方法和變量,只暴漏了我們希望暴漏的變量和方法,,是不是優(yōu)雅了很多,,但是讓我們再回顧一下單例模式的概念和實現(xiàn)方式:

  單例就是保證一個類只有一個實例,實現(xiàn)的方法一般是先判斷實例存在與否,,如果存在直接返回,,如果不存在就創(chuàng)建了再返回,以確保了一個類只有一個實例對象,。

  顯然上面的代碼還不滿足單例模式的條件不是嗎,?還記得身份證的例子嗎?我們再回顧一遍,。

  不可不知的JavaScript,、 ES6、TypeScript 設(shè)計模式之單例模式

  下面的代碼也是這樣的邏輯

  不可不知的JavaScript,、 ES6,、TypeScript 設(shè)計模式之單例模式

  因為我們只實例化了一次所以當(dāng)你改變參數(shù)的時候因為沒有被統(tǒng)招實例化所以輸出的結(jié)果還是第一次實例化的時候的結(jié)果。這就是單例模式了,。

  不可不知的JavaScript,、 ES6、TypeScript 設(shè)計模式之單例模式

  有了ES6以后我們的代碼就可以寫的更加的優(yōu)雅

  不可不知的JavaScript,、 ES6,、TypeScript 設(shè)計模式之單例模式

  首先我們創(chuàng)建了一個類,初始化的時候標(biāo)記改類是否初始化過,,然后使用static創(chuàng)建了一個靜態(tài)類,,也就是說只能被類直接調(diào)用,實例化以后就不可以在調(diào)用getInstance方法,。

  然后你看到了 結(jié)果和上面的一樣都只會打印出第一次被實例化的參數(shù),。

  不可不知的JavaScript、 ES6,、TypeScript 設(shè)計模式之單例模式

  vue3.0馬上就要來了,,雖然他還可以使用es6來進(jìn)行開發(fā),但源碼卻是使用TypeScript進(jìn)行編寫的,,可見大神們是多么的喜歡TypeScript,,所以如果不下手可就晚了,那么我們看下用TypeScript來實現(xiàn)單例模式如何編寫,,和es6有多大的區(qū)別,。

  不可不知的JavaScript、 ES6,、TypeScript 設(shè)計模式之單例模式

  與JavaScript相比Typescript 的語法更加的嚴(yán)謹(jǐn),,更便于學(xué)習(xí)和理解。

  在上的代碼中我們同樣創(chuàng)建了一個類,,在進(jìn)行變量聲明的是,,TypeScript聲明了私有靜態(tài)變量同時限制了他的類型。其他寫法與es6相差不大,。

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多