單例模式有許多寫法,可以結(jié)合自己理解選擇一個自己喜歡的
引入一個其他人的博客關(guān)于單例的不錯總結(jié);
單例
單例模式 : 一個類有且只有一個實例(對象)
1st.私有化構(gòu)造方法 防止類體之外隨意new對象
2nd.本類當中創(chuàng)建一個當前類型的對象(可以new 也可以在調(diào)用的時候new)
????為了防止無限套蛋的問題 應(yīng)當使用static修飾(static修飾的屬性全局只有一份),為了防止惡意的修改 應(yīng)當private修飾
3rd.提供一個公共的getter方法
????????這個方法應(yīng)當是靜態(tài)的 必須是不需要對象就能調(diào)用
重點
//雙重檢查的單例 推薦使用的單例
public class Singleton {
? ? private static volatile Singleton singleton;
? ? private Singleton() {}
? ? public static Singleton getInstance() {
? ? ? ? if (singleton == null) {
? ? ? ? ? ? synchronized (Singleton.class) {
? ? ? ? ? ? ? ? if (singleton == null) {
? ? ? ? ? ? ? ? ? ? singleton = new Singleton();
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? }
????? ?return singleton;
? ? }
浪客行1213的簡書
XHH