1.單例設計模式
主要作用:讓乙個類在記憶體中只有乙個例項物件
常見的單例設計模式有哪幾種?
1.餓漢式 :不支援懶載入 效率高
/**
* 餓漢式
* @author alan
* */
public class hungrysingleton
private static final hungrysingleton hungrysingleton = new hungrysingleton();
public static hungrysingleton getinstance()
}
2.懶漢式:懶載入 執行緒不安全
/**
* 懶漢式
* @author alan
* */
public class lazysingleton
private static lazysingleton lazysingleton;
public static lazysingleton getinstance()
return lazysingleton; }
}
3.雙重鎖懶漢式:執行緒安全 支援懶載入
/**
* 雙重鎖懶漢式
* @author alan
* */
public class lazydublechecksingleton
//volatile 為了解決指令重排序問題
private volatile static lazydublechecksingleton lazydublechecksingleton;
public static lazydublechecksingleton getinstance()
}}
return lazydublechecksingleton; }
}
4.靜態內部類懶漢式 :執行緒安全 效率高 支援懶載入
/**
* 靜態內部類單例
* @author alan
* */
public class lazyinnerclasssingleton }
public static lazyinnerclasssingleton getinstance()
private static class lazystaticsingleton
}
5.註冊式單例 :執行緒安全,支援懶載入,效率高,且可以避免反射和序列化攻擊
/**
* 註冊式單例
* @author alan
* */
public class registermap
if(null == register.get(name)) catch (exception e)
} return (registermap) register.get(name);
}}
幾種常見的單例模式
單例模式是一種常用的軟體設計模式,其定義是單例物件的類只能允許乙個例項存在。許多時候整個系統只需要擁有乙個的全域性物件,這樣有利於我們協調系統整體的行為。比如在某個伺服器程式中,該伺服器的配置資訊存放在乙個檔案中,這些配置資料由乙個單例物件統一讀取,然後服務程序中的其他物件再通過這個單例物件獲取這些...
常見設計模式之 單例模式
遇到類似的問題 生產編號的產生,售票系統等資料需要同步,馬上想到單例模式.例子 package singleton description 單例模式 author potter date 2012 8 14 下午10 08 16 version v1.0 public static void mai...
python常見設計模式 單例模式
單例就是單個例項,保證所建立的類進行例項化的時候,每次建立的例項都是同乙個,確保在記憶體中只有乙個物件。當建立某個物件需要很大的記憶體空間的時候可以考慮單例模式,或者一些資源操作等導致效能或者損耗。class danlilei instance none def new cls,args,kwarg...