設計模式1單例模式

指一個類只有一個實例,且該類能自行創建這個實例的一種模式
懶漢式單例volatile synchronized 這裏用volatile確實更勝一籌
public class LazySingleton
{
private static volatile LazySingleton instance=null; //保證 instance 在所有線程中同步
private LazySingleton(){} //private 避免類在外部被實例化
public static synchronized LazySingleton getInstance()
{
//getInstance 方法前加同步
if(instance==null)
{
instance=new LazySingleton();
}
return instance;
}
}

餓漢式單例
public class HungrySingleton
{
private static final HungrySingleton instance=new HungrySingleton();
private HungrySingleton(){}
public static HungrySingleton getInstance()
{
return instance;

用途:當某類需要頻繁實例化,而創建的對象又頻繁被銷燬的時候,如網絡請求,多線程的線程池、網絡連接池等
單例模式可擴展爲有限的多例(Multitcm)模式,這種模式可生成有限個實例並保存在 ArmyList 中,客戶需要時可隨機獲取

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章