設計模式筆記 單例模式

2021-08-28 19:34:07 字數 891 閱讀 8601

1、懶漢式

(1)執行緒不安全

public class singleton 

public static singleton getinstance()

return singleton;

}}

缺點:不支援多執行緒。

(2)執行緒安全

public class singleton 

public static synchronized singleton getinstance()

return singleton;

}}

優點:第一次呼叫才初始化,避免浪費記憶體;

缺點:必須加synchronized才能保證單列,會影響效率;

2、餓漢式

public class singleton 

public static singleton getinstance()

}

優點:沒有加鎖執行效率高;

缺點:類載入是就初始化,浪費記憶體。

3、雙檢鎖

public class singleton 

public static singleton getinstance() }}

return singleton;

}}

優點:在多執行緒情況下能保持高效能。

4、登記式/靜態內部類

public class singleton 

private singleton()

public static singleton getinstance()

}

優點:延遲載入。

設計模式筆記 單例模式

單例模式在系統開發時很常見,乙個系統中可能會有多個單例模式的運用!它比全域性變數的好處?1.能控制生成時間,保證初始化順序?2.容易保證執行緒安全 全域性變數需要多執行緒client單獨控制併發,單例在類實現中已經做到,無需client再處理 3.減少函式模組之間的耦合,減少命名衝突,便於管理?可能...

設計模式筆記 單例模式

單例模式 保證乙個類只有乙個例項,並提供乙個方法訪問它的全域性訪問點。singleton類,定義乙個 getinstance 方法,允許客戶訪問它的唯一例項。getinstance 是乙個靜態方法,主要負責建立自己的唯一例項。public class singleton public static ...

設計模式筆記 單例模式

在單例模式中,對單例類的所有例項化得到的都是相同的乙個例項 1.餓漢式 靜態初始化 description 餓漢式 靜態常量 1.執行緒安全 2.在類載入的同時已經建立好乙個靜態物件,呼叫時反應速度快 在類裝載的時候就完成例項化,沒有達到lazy loading的效果。如果從始至終從未使用過這個例項...