ts單例模式 預載入和懶載入

2021-09-05 08:53:25 字數 1167 閱讀 4888

單例模式是針對類的一種設計,讓類只能有乙個例項物件,對於一些沒必要產生第二個例項的類來說建議設計成單例類。

單例類的例項化過程是由自身實現的,減少了其他人使用該類時的心智負擔。缺點是單例類由於靜態屬性,無法擴充套件。

由於單例類的例項化過程是由自身實現的,所以設計的時候在new這裡就會產生兩種方法。

1. 預載入單例

/**

*singleton_quick

* * @export

* @class singleton_quick

*/export class singleton_quick

public static instance: singleton_quick = new singleton_quick()

private _name: string

set name(value: string)

get name(): string

}

程式剛開始執行,類就例項化完畢。減輕後續大量類例項化時產生的壓力,提高執行流暢度。缺點是如果模擬較龐大時,會使程式啟動暫時阻塞,而且容易造成資源浪費,因為有些類可能並沒有被呼叫。

2. 懶載入單例

/**

*singleton_lazy

* * @export

* @class singleton_lazy

*/export class singleton_lazy

private static instance: singleton_lazy = null

public static getinstance(): singleton_lazy

private _name: string

set name(value: string)

get name(): string

}

類內部實現了乙個getinstance方法,程式剛開始執行,類並不例項化,直到外部呼叫getinstance方法時才會執行建構函式,即用的時候再例項化物件。這樣做可以避免程式啟動剛開始時阻塞,類的所有資源採取懶載入策略。缺點是在多執行緒情況下會誤判instance為null,然而js為單執行緒,不會涉及這方面的問題。

單例類的關鍵:

建構函式的訪問許可權為private。

靜態例項。

懶載入和預載入

懶載入和預載入 懶載入的原理及實現 處理預載入時設定img 的src 屬性和img 的onload 事件的位置前後順序關係 關於的預載入,你所不知道的 載入的過程是非同步的 一 懶載入 介紹 目的 二 預載入 介紹 目的 這對畫廊及佔據很大比例的 來說十分有利,它保證了快速 無縫地發布,也可幫助使用...

預載入和懶載入

懶載入 通過監聽scroll事件,判斷進入可視區域之後請求資源 對於電商等很多,頁面很長的業務場景適用 減少無效資源的載入 併發載入的資源過多會阻塞js的載入,影響 的正常使用 可以使用原生js或者引用zepto.min.js var viewheight document.documentelem...

懶載入和預載入

懶載入和預載入 懶載入的原理及實現 處理預載入時設定img 的src 屬性和img 的onload 事件的位置前後順序關係 關於的預載入,你所不知道的 載入的過程是非同步的 一 懶載入 介紹 目的 二 預載入 介紹 目的 這對畫廊及佔據很大比例的 來說十分有利,它保證了快速 無縫地發布,也可幫助使用...