1. 什么是單例模式?
單例模式(Singleton Pattern)是一種設計模式,確保某個類在整個應用中只有一個實例,并且提供全局訪問點。它有以下特點:
- 確保只有一個實例。
- 提供全局訪問點。
- 防止多次實例化,節約資源。
2. 如何實現單例模式?
單例模式有多種實現方式,以下是最常見的幾種。
2.1 餓漢式(Eager Initialization)
餓漢式單例模式在類加載時就創建實例,線程安全,但是如果不使用這個類,實例也會被創建,可能導致內存浪費。
public class Singleton {// 在類加載時就創建實例,線程安全private static final Singleton instance = new Singleton();// 私有構造函數,防止外部實例化private Singleton() {}// 提供全局訪問點public static Singleton getInstance() {return instance;}
}
優點:
- 實現簡單。
- 線程安全。
缺點:
- 可能會導致內存浪費,尤其是當實例并不一定被使用時。
2.2 懶漢式(Lazy Initialization)
懶漢式單例模式是在首次使用時才創建實例,但在多線程環境下,需要注意線程安全問題。
public class Singleton {// 延遲加載實例private static Singleton instance;// 私有構造函數,防止外部實例化