Java實現單例設計模式方法解析
單例模式的幾種實現方式:
一:餓漢式單例
方式一:枚舉方式獲得單例對象
方式二:靜態屬性獲得單例對象
方式三:靜態方法獲得單例對象
二:懶漢式單例
方式一:靜態方法獲得單例對象(線程安全)
方式二:內部類方式去獲取單例對象
示例:
惡漢式:方式一
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;}}
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。
相關文章: