Posted on 2009-06-01 21:25
Gavin.lee 閱讀(212)
評論(0) 編輯 收藏 所屬分類:
java design pattern
單態類概念:Singleton 是一種創建性模型,它用來確保在整個軟件系統中,某個類只產生一個實例,并提供一個訪問它的全局訪問點.對一些類來說,保證只有一個實例是很重要的,比如有的時候,數據庫連接或 Socket 連接要受到一定的限制,必須保持同一時間只能有一個連接的存在.再舉個例子,集合中的 set 中不能包含重復的元素,添加到set里的對象必須是唯一的,如果重復的值添加到 set,它只接受一個實例.JDK中正式運用了Singleton模式來實現 set 的這一特性,大家可以查看java.util.Collections里的內部靜態類SingletonSet的原代碼.其實Singleton是最簡單但也是應用最廣泛的模式之一,在 JDK 中隨處可見.
單態類的特性:
1、單態類只可有一個實例。
2、它必須自己創立自己這唯一的一個實例。
3、它必須給所有其它的類提供自己這一實例。
餓漢式:
public class EagerSingleton {
private static final EagerSingleton instance = new EagerSingleton();
private EagerSingleton() { }
public static EagerSingleton getInstance() {
return instance;
}
}
懶漢式:
public static LazySingleton getInstance(){
private static LazySingleton m_instance = null;
private LazySingleton(){}
public static synchronized LazySingleton getInstance() {
if(instance == null)
instance = new LazySingleton();
return m_instance;
}
}
其實學了一點java的初學者,寫一個單態類,是絕對沒問題的,但是想用好它,好像就沒那么簡單了,http://www.uml.org.cn/sjms/200903103.asp 這篇文章寫的非常好。先到這里,以后等擺脫菜鳥的稱號了再來仔細想想單態模式。期待中……