設計模式 5 單例模式

2021-09-03 00:27:23 字數 551 閱讀 4214

單例模式應該是每個開發必須知道的設計模式,也十分簡單,指保證整個程式中只有乙個例項。

如果外部可以呼叫建構函式,那麼就無法保證單例

私有化建構函式 private, 內部提前初始化 乙個 例項

package singleton;

public class singleton

public static singleton getinstance()

}

提前宣告,但不初始化,直到需要的時候在初始化,不加同步鎖可能會出現衝突,得到多個例項。比如加入兩個執行緒同時呼叫getinstance(),這個時候singleton都是null,則都會new 例項。

package singleton;

public class hungrysingleton

public static hungrysingleton getinstance()

return singleton;

}}

設計模式筆記5(單例模式)

有的時候一些資源是只能有乙個的,這時候,代表這個資源的物件就只能有乙個,例如執行緒池。快取等資源。有人會說直接用全域性變數來實現不就是,這種情況是可以的,但是這樣是有缺點的,全域性變數在程式一開始的時候就建立好物件,但是,有些資源是十分消耗資源的,這樣的話浪費大量資源。經典的模式 如下 public...

設計模式筆記5(單例模式)

有的時候一些資源是只能有乙個的,這時候,代表這個資源的物件就只能有乙個,例如執行緒池。快取等資源。有人會說直接用全域性變數來實現不就是,這種情況是可以的,但是這樣是有缺點的,全域性變數在程式一開始的時候就建立好物件,但是,有些資源是十分消耗資源的,這樣的話浪費大量資源。經典的模式 如下 public...

Head First 設計模式 5 單例模式

單例模式 確保乙個類只有乙個例項,並提供乙個全域性訪問點。用到的設計原則 1 封裝變化 2 組合優於整合 3 針對介面變成而不是針對實現 4 為互動物件之間的松耦合設計而努力 5 類應該對擴充套件開放,對修改關閉 6 依賴抽象,而不是依賴具體類 最簡單的單例 class singleton publ...