Java單例模式知識要點備考

單例模式是一種常用的軟件設計模式。單例對象的類必須保證只有一個實例存在。也就是整個系統只能有一個的全局對象。

因此,單例模式可以確保應用該模式的系統中一個類僅僅有一個實例。

比如,線程池、日誌、對話框等可設計成單例。

1、單例模式類型

單例模式屬於創建型模式。

2、單例模式類圖

Java單例模式知識要點備考


3、單例模式要素

①私有的構造方法。

②指向自己實例的私有靜態引用。

③以自己實例為返回值的靜態的公有方法。

4、單例模式實例代碼

4.1、餓漢式單例

public class Singleton {

private Singleton(){}

private static Singleton instance = new Singleton();

public static Singleton getInstance(){

return instance;

}

}

4.2、懶漢式單例

public class Singleton {

private static Singleton instance = null;

private Singleton() {}

public static synchronized Singleton getInstance(){

if (instance == null) instance = new Singleton();

return instance;

}

}

餓漢式單例在單例類被加載時,實例化一個對象;而懶漢式單例只有在真正使用時才會實例化一個對象。因此,從速度和反應時間角度來講,餓漢式要好一些;從資源利用效率上說,懶漢式要好一些。

5、單例模式注意事項

①單例模式的構造器必須私有,即不能通過構造器創建對象;

②通過公有的靜態方法,返回該類的唯一實例。


分享到:


相關文章: