1.單例模式介紹
1)定義:確保乙個類最多只有乙個例項,並提供全域性訪問點
2)應用場景:有些物件只需要乙個:執行緒池、快取等;如果多個例項會造成衝突,導致結果的不一致;
3)實現的思路:靜態變數實現、程式設計師之間協商乙個全域性變數
2.單例模式實現
1)懶漢模式(在呼叫方法時建立物件)
public class singleton1
public static singleton1 getinstance()
return singleton;
}
2)惡漢模式(在類初始化時建立)
public class singleton2
public static singleton2 getinstance()
}
3.懶漢模式優化
1)存在的問題:多個物件訪問,引發多執行緒問題,導致資料的不一致
2)解決方法
①建立方法,新增關鍵字
public static synchronized singleton1 getinstance()
return singleton;
}②惡漢模式
③雙重檢查加鎖:
第一步.private volatile static singleton singleton = null;
第二步.在檢查為空時,判斷執行緒同步性(只會進入一次,避免多次請求)
public static synchronized singleton1 getinstance()}}
return singleton;
}
設計模式之單例模式
前一段時間買了一本秦小波寫的 設計模式之禪 網上對這書的評價很高。現在還沒有看很多,但是有些地方頗有感觸,也並不是所有的地方都能看懂,但是會慢慢研究的。自己對於設計模式的感覺就是乙個字 牛!感覺會23種設計模式並且會熟練運用的人,真的就是大師級的牛人了,設計模式是乙個專案主管或者架構師一定要會的東西...
設計模式之單例模式
package com.xie.singleton public class singleton 提供乙個共有的靜態的入口方法 public static singleton getinstance 懶漢式 延遲載入 提供乙個私有的靜態的成員變數,但不做初始化 private static sing...
設計模式之 單例模式
單例模式 singleton 保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點。單例模式 單件模式 使用方法返回唯一的例項 public class singleton private static singleton instance public static singleton geti...