單例模式在TypeScript中的應用

2021-10-02 17:14:12 字數 2586 閱讀 7729

在oop程式設計中,是用來解決特定問題的總結(最佳實踐)。設計模式----23種

擴充套件:

資料結構和演算法,與語言無關

構建模式:建立物件,單例,工廠,構建

行為模式:**,命令,觀察者(mvvm)

結構模式:多個元件的關係 mvc架構,

熟悉物件導向程式設計是設計模式的基礎

單例模式--singleton模式:類是模板,建立該型別的多個例項

作用:確保乙個類,有且只有乙個例項,程式中一些資源,只有乙份,全域性的作用域/context

模板:

開發|閉合原則:

1.構造器,私有(訪問修飾符)

2.提供乙個公共的靜態方法,獲得唯一例項

class singleton 

// 靜態子段

private static instance: singleton;

// 構造器私有

private constructor()

/*** 獲得唯一例項的類方法

*/public static getinstance(): singleton

return this.instance;}}

測試部分**:

let a = singleton.getinstance();

let b = singleton.getinstance();

a.n = 9;

console.log(a.n);

console.log(b.n);

let c = singleton.getinstance();

console.log(c.n);

控制台輸出結果為:

測試部分**:

let a = singleton.getinstance();

let b = singleton.getinstance();

let c = singleton.getinstance();

console.log(a.info);

console.log(b.info);

console.log(c.info);

console.log(singleton.getinstance().info);

控制台輸出結果為:

測試部分**:

let a = singleton.getinstance();

let b = singleton.getinstance();

let c = singleton.getinstance();

b.addinfo("mongdb")

c.addinfo("redis");

singleton.getinstance().addinfo("hbase");

console.log(a.info);

console.log(b.info);

console.log(c.info);

console.log(singleton.getinstance().info);

控制台輸出結果為:

測試部分**:

let a = singleton.getinstance();

let b = singleton.getinstance();

let c = singleton.getinstance();

b.addinfo("mongdb")

c.addinfo("redis");

singleton.getinstance().addinfo("hbase");

console.log(a.info);

console.log(b.info);

console.log(c.info);

console.log(singleton.getinstance().info);

a.info.pop();

console.log(a.info);

console.log(b.info);

console.log(c.info);

console.log(singleton.getinstance().info);

控制台輸出結果為:

單例模式 單例模式

餓漢式 急切例項化 public class eagersingleton 2.宣告靜態成員變數並賦初始值 類初始化的時候靜態變數就被載入,因此叫做餓漢式 public static eagersingleton eagersingleton new eagersingleton 3.對外暴露公共的...

單例 單例模式

簡單的實現乙個單例 instancetype sharedinstance return instance 真正的單例模式 myclass sharedinstance return instance id allocwithzone nszone zone return nil id copywi...

單例模式 懶漢式單例模式

單例模式有餓漢時模式和懶漢式 單例模式也就是說同一類只返回乙個物件供外部類使用 懶漢式即延遲初始化單例。在多執行緒環境下,簡單的懶漢式會有執行緒安全。懶漢式單例模式解決線性安全問題如下 1 使用雙重檢查鎖機制解決執行緒安全問題。2 單例模式還有更好的解決方案,即使用靜態類方式。懶漢式單例模式典型 p...