設計模式之單例模式(Singleton) 設計模式是前輩的一些經驗總結之後的精髓,學習設計模式可以針對不同的問題給出更加優雅的解答 單例模式可分為倆種:懶漢模式和餓漢模式。倆種模式分別有不同的優勢和缺點 懶漢模式 class Singleton{ private static Singleton i ...
設計模式之單例模式(Singleton)
設計模式是前輩的一些經驗總結之後的精髓,學習設計模式可以針對不同的問題給出更加優雅的解答
單例模式可分為倆種:懶漢模式和餓漢模式。倆種模式分別有不同的優勢和缺點
懶漢模式
class Singleton{
private static Singleton instance = new Singleton();
private test(){
}
public static test getInstance(){
return instance;
}
}
- 將構造函數私有化,不允許外界創建對象
- 創建類的唯一實例
- 提供一個用於獲取實例的方法,使用Singlenton.getInstance();來創建
餓漢模式
class test{
private static test instance;
private test(){
}
public static test getInstance(){
if(instance != null){
return new test();
}
return instance;
}
}
- 同樣將構造函數私有化
- 聲明實例但不初始化
- 在方法內部判斷有沒有創建,沒有就new出來,有了就直接使用
總結:
餓漢模式在類載入時候自動創建實例,類載入慢,運行時獲取對象快(線程安全)
懶漢模式在類載入時候沒有載入實例,在創建的時候才會生成實例,類載入快,運行時候獲取對象慢(線程不安全)