再談設計模式之 1 單例模式

2021-09-23 23:19:19 字數 942 閱讀 2579

作為乙個程式猿單例模式大家再熟悉不過了.

除了餓漢單例

public

class

singleton

public

static singleton getinstance()

}

懶漢式單例

public

class

singleton

public

static

synchronized singleton getinstance

()return singleton;

}}

還有登記式單例(

1.記憶體中之存在乙個例項,節省資源

2.避免了物件的頻繁建立消除

3.可以全域性訪問

1.構造方法必須是靜態

2.不要通過反射的方式獲取物件

3.在多執行緒的使用場景下注意併發問題.

如:懶漢式 getinstance方法在高併發的場景下是可以優化的

public class singleton 

public static

singleton getinstance()

}return

singleton;}

}

使用double check 替換加在方法上的synchronized 較少併發情況下資源競爭的粒度

單例模式相對靜態方法的優勢

1.從設計的角度來說 單例可以實現介面但是靜態類不行,使用靜態類那麼使用者和靜態類建立了直接的聯絡,重設計原則來說類與類之間最好你不認識我,我不認識你,解耦.使用靜態類破壞了這點.

2.從初始化的角度來說 單例可以延時載入,而靜態類不可以,針對初始化複雜的場景延時載入很有用

3.從執行緒安全的角度來說 單例相比靜態類更容易處理併發問題

1 設計模式之單例模式

設計模式分為三類型別,共23種 建立型模式 單例模式 抽象工廠模式 原型模式 建造者模式 工廠模式。結構型模式 介面卡模式 橋接模式 裝飾模式 組合模式 外觀模式 享元模式 模式。行為型模式 模板方法模式 命令模式 訪問者模式 迭代器模式 觀察者模式 中介模式 備忘錄模式 直譯器模式 狀態模式 策略...

1 設計模式學習之單例設計模式

一 什麼是單例設計模式?二 為什麼要使用單例設計模式?三 如何實現單例設計模式?缺點 2 懶漢式 public class mgr02 public static mgr02 getinstance return instance 缺點 3 synchronized修飾方法的寫法。解決懶漢式的執行緒...

設計模式1之Singleton單例模式

懶漢式 public class singleton public static synchronized singleton getinstance return uniqueinstance 懶漢式 volatile public class singleton public static si...