JAVA設計模式之 單例模式【Singleton Pattern】
一、概述
確保某一個類只有一個例項,而且自行例項化並向整個系統提供這個例項,這個類稱為單例類,它提供全域性訪問的方法。單例模式是一種物件建立型模式。
二、適用場景
系統/應用只需要一個例項物件,確保物件的唯一性。
三、UML類圖
四、參與者
Singleton(單例類):在單例類的內部實現只生成一個例項,同時它提供一個靜態的getInstance()工廠方法,讓客戶可以訪問它的唯一例項;為了防止在外部對其例項化,將其建構函式設計為私有;在單例類內部定義了一個Singleton型別的靜態物件,作為外部共享的唯一例項。
五、用例學習
單例模式兩種不同的實現方式:
1、餓漢式單例模式:
/**
* 單例類:餓漢式單例模式
* @author lvzb.software@qq.com
*
*/
public class EagerSingleton {
/** 定義私有靜態變數 類載入的時候就已經建立了單例物件 */
private static final EagerSingleton instance = new EagerSingleton();
/**
* 私有建構函式 只能被自身呼叫例項化
*/
private EagerSingleton(){
}
/**
* 獲取單例例項物件
* @return
*/
public static EagerSingleton getInstance(){
return instance;
}
}
2、懶漢式單例模式:
/**
* 單例模式一:懶漢式單例模式
* @author lvzb.software@qq.com
*
*/
public class LazySingleton {
/** 私有靜態成員變數 儲存唯一例項 */
private static LazySingleton instance;
/**
* 私有建構函式 只能被自身呼叫例項化
*/
private LazySingleton() {
}
/**
* 獲取單例例項物件
* @return
*/
public synchronized static LazySingleton getInstance(){
if (instance == null){
instance = new LazySingleton();
}
return instance;
}
}
相關文章
- 設計模式之單例模式(Singleton Pattern)設計模式單例
- 設計模式--單例(Singleton Pattern)設計模式單例
- 常用設計模式-單例模式(Singleton pattern)設計模式單例
- PHP設計模式(一)—單例模式(Singleton Pattern)PHP設計模式單例
- 單例模式(Singleton Pattern)單例模式
- java設計模式-單例模式SingletonJava設計模式單例
- 設計模式—singleton(單例模式)設計模式單例
- 設計模式系列之單例模式(Singleton Pattern)——確保物件的唯一性設計模式單例物件
- Singleton 單例設計模式單例設計模式
- 設計模式之“物件效能模式”: Singleton 單例模式(筆記)設計模式物件單例筆記
- PHP設計模式(四)單例模式(Singleton)PHP設計模式單例
- 《設計模式》 - 1. 單例模式( Singleton )設計模式單例
- 深入理解 JavaScript 單例模式 (Singleton Pattern)JavaScript單例模式
- Scala 與設計模式(一):Singleton 單例模式設計模式單例
- Java設計模式之單例模式Java設計模式單例
- Java設計模式系列之單例設計模式Java設計模式單例
- 單例模式(Singleton)單例模式
- 單例模式 singleton單例模式
- 設計模式 - 單例模式Singleton的8種寫法設計模式單例
- 折騰Java設計模式之單例模式Java設計模式單例
- Java設計模式【單例模式】Java設計模式單例
- Java設計模式 | 單例模式Java設計模式單例
- Java設計模式——單例模式Java設計模式單例
- Java設計模式–單例模式Java設計模式單例
- Java設計模式-單例模式Java設計模式單例
- Java設計模式--單例模式Java設計模式單例
- 2.C#設計模式系列01_單例模式_SingletonC#設計模式單例
- 設計模式之單例模式設計模式單例
- 設計模式之☞單例模式設計模式單例
- 設計模式之---單例模式設計模式單例
- 設計模式之單例設計模式設計模式單例
- 一天一個設計模式(二) - 單例模式(Singleton)設計模式單例
- 使用C# (.NET Core) 實現單體設計模式 (Singleton Pattern)C#設計模式
- Java常用設計模式-單例模式Java設計模式單例
- Javascript設計模式之單例模式JavaScript設計模式單例
- PHP 設計模式之——單例模式PHP設計模式單例
- golang設計模式之單例模式Golang設計模式單例
- js設計模式之單例模式JS設計模式單例
- Javascript 設計模式之單例模式JavaScript設計模式單例