【轉】Singleton單例模式

對於系統中的某些類來講,只有一個 實例很重要,例如,一個系統中能夠存在多個打印任務,可是隻能有一個正在工做的任務;一個系統只能有一個窗口管理器或文件系統;一個系統只能有一個計時工具或ID(序號)生成器。如在Windows中就只能打開一個任務管理器。若是不使用機制對窗口對象進行惟一化,將彈出多個窗口,若是這些窗口顯示的內容徹底一致,則是重複對象,浪費內存資源;若是這些窗口顯示的內容不一致,則意味着在某一瞬間系統有多個狀態,與實際不符,也會給用戶帶來誤解,不知道哪個纔是真實的狀態。所以有時確保系統中某個對象的惟一性即一個類只能有一個實例很是重要。 [3]
如何保證一個類只有一個實例而且這個實例易於被訪問呢?定義一個全局變量能夠確保對象隨時均可以被訪問,但不能防止咱們實例化多個對象。一個更好的解決辦法是讓類自身負責保存它的惟一實例。這個類能夠保證沒有其餘實例被建立,而且它能夠提供一個訪問該實例的方法。這就是單例模式的模式動機。 [3
public class Singleton{ private static Singleton single = new Singleton(); private Singleton(){} public Singleton getInstance(){   return single; } }
相關文章
相關標籤/搜索