所謂的單例模式就是指的乙個類只提供乙個物件例項,而且所提供的例項只有乙個訪問的入口(方法)。
常見的應用場景:
常見的有五種實現方式:
所謂的餓漢式就是,讓單例物件在類建立時就被載入,像乙個餓漢。
package cn.liu.single;
/** * 餓漢式單例模式
* @author administrator
* */
public class demo01 ;
//3.提供方法獲得屬性
//方法沒有同步,呼叫效率高!
public static demo01 getinstance()
}
餓漢式特點:
它的靜態屬性直接new了乙個物件。這樣類在被載入時就直接new乙個物件,之後可以反覆的獲得。(呼叫效率高)
執行緒安全
package cn.liu.single;
/** * 懶漢式
* @author administrator
* */
public class demo02 ;
//3.提供靜態方法獲得屬性
//方法同步,呼叫效率低!
public static synchronized demo02 getinstance()
return instance;
}}
懶漢式特點:
在用的時候再去new物件,之後物件存在便可直接呼叫(也就是可以延時載入)
執行緒安全
呼叫效率不高
package cn.liu.single;
/** * 雙重檢查鎖實現單例模式
* @author administrator
* */
public class demo03
} instance = sc;
} }
} return instance;
} private demo03()
}
package cn.liu.single;
/** *靜態內部類實現單例模式
*執行緒安全。呼叫高效率高,實現了延遲載入
* @author administrator
* */
public class demo04
//2.私有靜態方法
private demo04() {}
//3.獲得單例物件
public static demo04 getinstance()
}
特點:
new物件使用靜態內部類實現了,不會初始化類時呼叫此靜態類,而是在其方法getinstance呼叫時才new。(延遲載入)
執行緒安全
和餓漢式一樣代用效率高
package cn.liu.single;
/** * 列舉實現單例模式
* @author administrator
* */
public enum demo05
}
特點:
執行緒安全
呼叫效率高
不能延時載入
可以天然防止反射和反序列化
初探設計模式 單例模式
單例模式是我們經常使用的一種設計模式,那麼讓我們自己來設計一種單例模式的話,我們該如何設計呢?設計的方式有很多種,我們依次來看一下 首先是第一種 1 2 簡單的方式 在併發執行的時候可能存在多個例項3 4 author cuibin 5 create 2017 08 30 20 386 7publi...
初探Java設計模式 單例模式
單例模式在需要只有乙個例項的場合中使用,比如配置檔案。單例模式分為 餓漢模式 和 懶漢模式。下面是餓漢模式 package com.example.singletone public class singleton 2.建立private static 物件例項 private static sin...
PHP設計模式初探 詳解單例模式
2019獨角獸企業重金招聘python工程師標準 常見的設計模式有 24 種,其實就常規開發來說,了解其中的七八種就足夠了。工廠模式是最常見的,一般初學物件導向首先接觸的就是工廠模式,不多廢話。單例模式 wikipedia 是指類只維持乙個例項化後的物件,特別適合於建立資料庫鏈結。使用單例模式維護資...