單例設計模式

  1. 餓漢式
public class Singleton{
    public static final Singleton instance = new Singleton();
    private Singleton(){}
    public static Singleton getInstance(){
        return instance;
    }
}
  1. 懶漢式之方法同步
public class Singleton{
    public static final Singleton instance = null;
    private Singleton(){}
    public static synchronized Singleton getInstance(){
        if(instance == null){
            instance = new Singleton();
        }
        return instance; 
    }
}
  1. 懶漢式之雙重檢查
public class Singleton{
    public static final Singleton instance = null;
    private Singleton(){}
    public static  Singleton getInstance(){
        if(instance==null){
            synchronized(Singleton.class){
                if(instance==null){
                    instance = new Singleton();
                }
            }
        }
        return instance;
    }
}
  1. 靜態內部類
public class Singleton {    
    private static class SingletonHolder {    
       private static final Singleton INSTANCE = new Singleton();    
    }    
    private Singleton (){}    
    public static final Singleton getInstance() {    
       return SingletonHolder.INSTANCE;    
    }    
} 
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1.懶漢式 線程不安全,當有多個線程并行調用getInstance()的時候,就會創建多個實例。也就是說在多線程下...
    少一點閱讀 169評論 0 0
  • 前言 本文主要參考 那些年,我們一起寫過的“單例模式”。 何為單例模式? 顧名思義,單例模式就是保證一個類僅有一個...
    tandeneck閱讀 2,539評論 1 8
  • 1 場景問題# 1.1 讀取配置文件的內容## 考慮這樣一個應用,讀取配置文件的內容。 很多應用項目,都有與應用相...
    七寸知架構閱讀 6,887評論 12 68
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,967評論 19 139
  • 到南非,釣大魚;到南非,奔夢去! 時光荏苒,生活節奏的步伐如似流水。青春無語,卻散發出活力。 啟錨的航船,確定了航...
    靜守一方天空閱讀 645評論 1 1