Java實現單例設計模式方法解析
阿新 • • 發佈:2020-04-07
單例模式的幾種實現方式:
一:餓漢式單例
方式一:列舉方式獲得單例物件
方式二:靜態屬性獲得單例物件
方式三:靜態方法獲得單例物件
二:懶漢式單例
方式一:靜態方法獲得單例物件(執行緒安全)
方式二:內部類方式去獲取單例物件
示例:
惡漢式:方式一
enum Singleton{ INSTANCE;//單例 }
惡漢式:方式二
class Singleton{ public static final Singleton INSTANCE = new Singleton();//單例 private Singleton(){} }
惡漢式:方式三
class Singleton{ private static final Singleton INSTANCE = new Singleton();//單例 private Singleton(){} public static Singleton getInstance(){ return INSTANCE; } }
懶漢式:方式一
class Singleton{ private static Singleton instance; private Singleton(){ } public static Singleton getInstance(){ //存線上程安全問題(多執行緒的時候,不一定是單例) /*if(null == instance){ instance = new Singleton(); } return instance;*/ if(null == instance){ //提升程式碼效率,避免每一次都去走同步程式碼塊 synchronized(Singleton.class){ if(null == instance){ instance = new Singleton(); } return instance; } } return instance; } } }
懶漢式:方式二
class Singleton{ private Singleton(){} private static class Inner{ public static final Singleton INSTANCE = new Singleton(); } public static Singleton getInstance(){ return Inner.INSTANCE; } }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。