設計模式筆記之 單例設計模式

2021-07-24 21:38:57 字數 1104 閱讀 1317

首發:

單例模式確保乙個類只有乙個例項,並提供乙個全域性訪問點。

實現乙個單例模式很簡單,但我沒有想過單例模式有什麼用處,直到一次筆試就遇到了問單利模式的應用場景有哪些。

單例模式的應用場景:執行緒池(thread pool)、快取(cache)、對話方塊、處理偏好設定、登錄檔(registry)物件,日誌物件,充當印表機、顯示卡等裝置的驅動程式的物件。這類物件只能有乙個物件,如果出現多個例項就會導致很多問題,例如:程式的行為異常、資源使用過量、或者是出現不一致的結果。

有四種方式實現單例模式,分別是:餓漢式、懶漢式、雙重檢查加鎖、列舉。接下來我會結合**介紹這四種方式。

- 餓漢式

在類被載入時就在類中建立乙個唯一例項。

優點:執行緒安全。

**實現:

/**

* 單例模式(餓漢式實現)

* @author cnbo

*/public class singleton1

//提供乙個靜態方法供外部使用singleton1例項

public static singleton1 getinstance()

}

/**

* 單例模式(懶漢式實現)

* @author cnbo

*/public class singleton2

public static singleton2 getinstance()

return singleton;

}}

/**

* 單例模式(執行緒同步實現)

* @author cnbo

*/ public class singleton3

public static singleton3 getinstance() }}

return singleton;

}}

/*** 單例模式(列舉實現)* @author cnbo*/public enum singleton4
是不是覺得列舉實現單例的**太簡單了,我想說的是,列舉就是這麼任性,就是要這麼簡單。

設計模式筆記之 單例模式

那麼單例的建立方式有4中 其實是5種,只不過有一種因為不推薦使用,就不學習了 這種寫法分類來自尚學堂的老師。這個寫法是類在初始化就已經完成單例的建立的,不可以延遲操作 package singlepattern 這是類初始化就馬上載入,惡漢 author cloudhuan public class...

設計模式之 單例設計模式

單例設計模式 單例設計模式概述 單例模式就是要確保類在記憶體中只有乙個物件,該例項必須自動建立,並且對外提供。優點 在系統記憶體中只存在乙個物件,因此可以節約系統資源,對於一些需要頻繁建立和銷毀的物件單例模式無疑可以提高系統的效能。缺點 沒有抽象層,因此擴充套件很難。職責過重,在一定程式上違背了單一...

設計模式之單例設計模式

singleton 保證乙個類只有乙個例項,並提供訪問它的全域性訪問點 類初始化時,立即載入這個物件 沒有延時載入的優勢 載入類時,天然的是執行緒安全的!private static singletondemo1 instance new singletondemo1 private singlet...