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;
}
}
相關文章
- Java設計模式之單例模式(Singleton Pattern)Java設計模式單例
- Java設計模式——單例模式(Singleton pattern)Java設計模式單例
- 設計模式之單例模式(Singleton Pattern)設計模式單例
- 設計模式--單例(Singleton Pattern)設計模式單例
- 常用設計模式-單例模式(Singleton pattern)設計模式單例
- PHP設計模式(一)—單例模式(Singleton Pattern)PHP設計模式單例
- Java設計模式之單例模式(Singleton)Java設計模式單例
- 單例模式(Singleton Pattern)單例模式
- java設計模式-單例模式SingletonJava設計模式單例
- 設計模式之單例模式 - Singleton設計模式單例
- 設計模式之——Singleton pattern設計模式
- 設計模式—singleton(單例模式)設計模式單例
- 設計模式 - 單例模式(Singleton)設計模式單例
- 設計模式系列之單例模式(Singleton Pattern)——確保物件的唯一性設計模式單例物件
- 設計模式——3單例模式(Singleton)設計模式單例
- Singleton 單例設計模式單例設計模式
- 設計模式之“物件效能模式”: Singleton 單例模式(筆記)設計模式物件單例筆記
- 單態設計模式(Singleton Design Pattern)設計模式
- 我所理解的設計模式(C++實現)——單例模式(Singleton Pattern)設計模式C++單例
- Java設計模式之單例模式Java設計模式單例
- PHP設計模式(四)單例模式(Singleton)PHP設計模式單例
- 《設計模式》 - 1. 單例模式( Singleton )設計模式單例
- 設計模式之Singleton - 單態模式設計模式
- 深入理解 JavaScript 單例模式 (Singleton Pattern)JavaScript單例模式
- Java設計模式之從[反恐精英控制檯]分析單例(Singleton)模式Java設計模式單例
- Scala 與設計模式(一):Singleton 單例模式設計模式單例
- 《JAVA與設計模式》之單例模式Java設計模式單例
- Java設計模式系列之單例設計模式Java設計模式單例
- 建立型模式 --- 單件模式(Singleton Pattern)模式
- JAVA設計模式之 代理模式【Proxy Pattern】Java設計模式
- JAVA設計模式之 簡單工廠模式【Simple Factory Pattern】Java設計模式
- 設計模式的征途—1.單例(Singleton)模式設計模式單例
- 折騰Java設計模式之單例模式Java設計模式單例
- JAVA設計模式之 裝飾模式【Decorator Pattern】Java設計模式
- JAVA設計模式之 建造者模式【Builder Pattern】Java設計模式UI
- JAVA設計模式之 原型模式【Prototype Pattern】Java設計模式原型
- JAVA設計模式之 狀態模式【State Pattern】Java設計模式
- JAVA設計模式之 命令模式【Command Pattern】Java設計模式