關(guān)于單例模式

最近看到老大寫了一段神奇的代碼,感覺(jué)終于js中聽過(guò)沒(méi)用過(guò)的設(shè)計(jì)模式突然有了意義,這里記錄一下:

class Cache {
  constructor() {
    this.storage = {};
  }

  set(k, v) {
    this.storage[k] = v;
  }

  get(k) {
    return this.storage[k];
  }

  destroy(k) {
    if (this.storage[k].destroy) {
      this.storage[k].destroy();
    } else {
      delete this.storage[k];
    }
  }
}

export default new Cache();

最開始我以為這里只是返回一個(gè)Cache類,但是在debug代碼的時(shí)候發(fā)現(xiàn)constructor只執(zhí)行了一次,讓我們來(lái)回顧一下單例模式的定義:只允許實(shí)例化一次,可以用一個(gè)對(duì)象劃一個(gè)命名空間,用于避免命名重復(fù)的問(wèn)題,幫助管理靜態(tài)變量(只能訪問(wèn)不能修改)具體信息可以查看我之前的文章。
因而這里Cache方法就為外部提供了一種方法來(lái)管理變量。

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

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

  • 3.Enforce the singleton property with a private construct...
    Mezereon閱讀 663評(píng)論 0 1
  • 靜態(tài)實(shí)現(xiàn)單例模式能較少的使用內(nèi)存,也具備一定的安全性 餓漢模式實(shí)現(xiàn)單例模式的原理是要一次單例對(duì)象就創(chuàng)建一個(gè)單例對(duì)象...
    奔跑之咸魚閱讀 366評(píng)論 0 3
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒(méi)有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,665評(píng)論 1 32
  • 一、溫故而知新 1. 內(nèi)存不夠怎么辦 內(nèi)存簡(jiǎn)單分配策略的問(wèn)題地址空間不隔離內(nèi)存使用效率低程序運(yùn)行的地址不確定 關(guān)于...
    SeanCST閱讀 8,133評(píng)論 0 27
  • 感謝大家一路以來(lái)的支持,小編好開心,好想喝兩杯 交朋友大家都喜歡 交朋友最怕的是我把你當(dāng)朋友你卻把我當(dāng)偶像 交閨蜜...
    愛(ài)叮叮閱讀 1,756評(píng)論 0 1

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