Java實(shí)現(xiàn)單例設(shè)計(jì)模式方法解析
單例模式的幾種實(shí)現(xiàn)方式:
一:餓漢式單例
方式一:枚舉方式獲得單例對(duì)象
方式二:靜態(tài)屬性獲得單例對(duì)象
方式三:靜態(tài)方法獲得單例對(duì)象
二:懶漢式單例
方式一:靜態(tài)方法獲得單例對(duì)象(線程安全)
方式二:內(nèi)部類方式去獲取單例對(duì)象
示例:
惡漢式:方式一
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(){//存在線程安全問題(多線程的時(shí)候,不一定是單例)/*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;}}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. 理解PHP5中static和const關(guān)鍵字2. IntelliJ IDEA安裝插件的方法步驟3. php模擬實(shí)現(xiàn)斗地主發(fā)牌4. .Net Core使用Coravel實(shí)現(xiàn)任務(wù)調(diào)度的完整步驟5. Vue封裝一個(gè)TodoList的案例與瀏覽器本地緩存的應(yīng)用實(shí)現(xiàn)6. jQuery 實(shí)現(xiàn)DOM元素拖拽交換位置的實(shí)例代碼7. Vuex localStorage的具體使用8. vue 使用localstorage實(shí)現(xiàn)面包屑的操作9. spring acegi security 1.0.0 發(fā)布10. MyBatis中的JdbcType映射使用詳解

網(wǎng)公網(wǎng)安備