設計模式之單例模式 - Singleton

weixin_34075551發表於2017-02-28
核心原理

單例模式的核心原理是將建構函式私有化, 並且提供一個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.------

相關文章