設計模式之單例模式 - Singleton
核心原理
單例模式的核心原理是將建構函式私有化, 並且提供一個static 的getInstance()方法獲取一個static的單例物件.
應用場景
有些類會持有很多資源, 比如ImageLoader類就會建立自己的執行緒池, 呼叫網路API等, 為了避免這些資源在程式中被建立多份, 影響整體效能. 一般對於ImageLoader這樣的類來說, 都要去使用單例模式.
還有就是像設定類, 比如BrowserSettings.java, 對這個類來說, 是沒有必要建立多個它的物件出來, 因此也最好使用單例模式.
最常用的實現方式
實現單例有幾種常用的方法, 但專案中最常用的標準方法是使用DCL(Double Check Lock)的方式實現.
public class Singleton {
private static Singleton _instance;
private Singleton() {
}
public static Singleton getInstance() {
if(_instance == null) {
synchronized(Singleton.class) {
If(_instance == null) {
_instance = new Singleton();
}
}
}
return _instance;
}
}
其他的幾種實現方式瞭解一下就行了, 自己寫專案時, 只要記住用DCL的方式寫程式碼就可以了.
---DONE.------
相關文章
- 設計模式之單例模式(Singleton Pattern)設計模式單例
- 設計模式—singleton(單例模式)設計模式單例
- java設計模式-單例模式SingletonJava設計模式單例
- Singleton 單例設計模式單例設計模式
- 設計模式之“物件效能模式”: Singleton 單例模式(筆記)設計模式物件單例筆記
- PHP設計模式(四)單例模式(Singleton)PHP設計模式單例
- 《設計模式》 - 1. 單例模式( Singleton )設計模式單例
- 常用設計模式-單例模式(Singleton pattern)設計模式單例
- 設計模式--單例(Singleton Pattern)設計模式單例
- Scala 與設計模式(一):Singleton 單例模式設計模式單例
- PHP設計模式(一)—單例模式(Singleton Pattern)PHP設計模式單例
- 單例模式(Singleton)單例模式
- 單例模式 singleton單例模式
- 設計模式 - 單例模式Singleton的8種寫法設計模式單例
- 2.C#設計模式系列01_單例模式_SingletonC#設計模式單例
- 設計模式之單例模式設計模式單例
- 設計模式之☞單例模式設計模式單例
- 設計模式之---單例模式設計模式單例
- 設計模式之單例設計模式設計模式單例
- 單例模式(Singleton Pattern)單例模式
- 一天一個設計模式(二) - 單例模式(Singleton)設計模式單例
- Javascript設計模式之單例模式JavaScript設計模式單例
- PHP 設計模式之——單例模式PHP設計模式單例
- golang設計模式之單例模式Golang設計模式單例
- js設計模式之單例模式JS設計模式單例
- Javascript 設計模式之單例模式JavaScript設計模式單例
- PHP 設計模式之單例模式PHP設計模式單例
- PHP設計模式之單例模式PHP設計模式單例
- Android設計模式之單例模式Android設計模式單例
- 01 設計模式之單例模式設計模式單例
- Java設計模式之單例模式Java設計模式單例
- 設計模式(一)之單例模式設計模式單例
- 設計模式系列之單例模式(Singleton Pattern)——確保物件的唯一性設計模式單例物件
- laravel singleton 單例模式使用Laravel單例模式
- Singleton——單例模式(8種)單例模式
- 設計模式之單例設計模式單例
- Java設計模式系列之單例設計模式Java設計模式單例
- 設計模式之單例模式詳解設計模式單例
- 理解設計模式之單例模式(Javascript)設計模式單例JavaScript