Singleton可以說是我最早接觸到的pattern了,大多的使用場合是有用在多執行緒上面,為了確保僅有一個物件時體會產生。
而singleton常常伴隨的議題是 多執行緒的安全姓,加減參考一下以下的網頁說明。
http://www.javamex.com/tutorials/double_checked_locking.shtml
http://www.javamex.com/tutorials/double_checked_locking_fixing.shtml
- 優點
- 控制物件實體的生成過程,可保持始終只有唯一一個物件實體。
- 降低了命名空間的使用頻繁問題。
- 精巧的操作與呈現設計。
- 同時也提供允許有特定數量的物件實體。
- 比起直接物件實體操作來的有彈性。
- 適用情境
- 適用於一個單一入口的存取點作為設計使用。
- J2SE 使用案例 - java.lang.Runtime
- 範例
public final class Singleton {
private static Singleton instance;
private int value;
private Singleton() {System.out.println("Singleton constructed.");}
public static synchronized Singleton getInstance() {
// if it has not been instantiated yet
if (instance == null)
// instantiate it here
instance = new Singleton();
return instance;
}
沒有留言:
張貼留言