單例模式的介紹:
在應(yīng)用單例模式時(shí),生成單例的類必須保證只有一個(gè)實(shí)例的存在,很多時(shí)候整個(gè)系統(tǒng)只需要擁有一個(gè)全局對(duì)象,才有利于協(xié)調(diào)系統(tǒng)整體的行為。比如在整個(gè)系統(tǒng)的配置文件中,配置數(shù)據(jù)有一個(gè)單例對(duì)象進(jìn)行統(tǒng)一讀取和修改,其他對(duì)象需要配置數(shù)據(jù)的時(shí)候也統(tǒng)一通過該單例對(duì)象來獲取配置數(shù)據(jù),這樣就可以簡化復(fù)雜環(huán)境下的配置管理。
單例模式的思路是:一個(gè)類能返回一個(gè)對(duì)象的引用(并且永遠(yuǎn)是同一個(gè))和一個(gè)獲得該實(shí)例的方法(靜態(tài)方法,通常使用 getInstance 名稱)。那么當(dāng)我們調(diào)用這個(gè)方法時(shí),如果類持有的引用不為空就返回該引用,否者就創(chuàng)建該類的實(shí)例,并且將實(shí)例引用賦值給該類保持的那個(gè)引用再返回。同時(shí)將該類的構(gòu)造函數(shù)定義為私有方法,避免其他函數(shù)使用該構(gòu)造函數(shù)來實(shí)例化對(duì)象,只通過該類的靜態(tài)方法來得到該類的唯一實(shí)例。
一般情況下,Javascript每次new一個(gè)對(duì)象就產(chǎn)生一個(gè)實(shí)例,實(shí)例指向不同的地址。就像如下:
以上,每次new出一個(gè)Person對(duì)象都是不同的。
如何在Javascript中實(shí)現(xiàn)單例模式呢?
--在生成某各對(duì)象時(shí)先判斷是否存在。存在就不生成對(duì)象,不存在就生成對(duì)象。
以上,通過PsonSIngleton對(duì)象的getInstance方法得到的實(shí)例每次都是一樣的。
關(guān)于javascript單例模式的相關(guān)知識(shí)就給大介紹到這里,希望對(duì)大家有所幫助。
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com