單例模式是一種物件建立型模式,使用單例模式, 可以保證為乙個類只生成唯一的例項物件。也就是說, 在整個程式空間中,該類只存在乙個例項物件。 其實,gof對單例模式的定義是:保證乙個類、 只有乙個例項存在,同時提供能對該例項加以訪 問的全域性訪問方法。
在應用系統開發中,我們常常有以下需求:
因為singleton模式可以保證為乙個類只生成唯一的例項 物件,所以這些情況,singleton模式就派上用場了。
1.餓漢式。
public class person
public void setname(string name)
//建構函式私有化
private person()
//提供乙個全域性的靜態方法
public static person getperson()
}
2.懶漢式。
public class person2
public void setname(string name)
//建構函式私有化
private person2()
//提供乙個全域性的靜態方法
public static person2 getperson()
return person;
}}
3.雙重檢查。
public class person3
public void setname(string name)
//建構函式私有化
private person3()
//提供乙個全域性的靜態方法,使用同步方法
public static synchronized person3 getperson()
return person;
}}
public class person4
public void setname(string name)
//建構函式私有化
private person4()
//提供乙個全域性的靜態方法
public static person4 getperson() }}
return person;
}}
mainclass:
public class mainclass
}
設計模式系列 單例模式
單例模式 確保乙個類只有乙個例項,並提供乙個全域性訪問點。什麼情況下需要單例模式?一些類提供公共功能供別人呼叫,本身不會處理業務邏輯 類會被許多類和執行緒呼叫 單例模式的一些注意點 單例的生存期超長,會導致記憶體的持續占用。單例在多執行緒環境需要小心的處理執行緒互斥,進行資源保護。單例在類的繼承樹中...
設計模式系列 單例模式
單例模式就是指單例類在一定的生命週期內只能有乙個物件例項,單例類的建立必須是本身,並能給使用者提供自身。在現實世界中,每個生命體都可以被看做是乙個單例物件,唯一且具體,具有不可複製性。同樣的,在軟體開發領域中,有時我們需要保證客戶端在當前的客戶機上只能執行乙個例項這個時候,我們就應該考慮使用單例模式...
設計模式系列 單例模式
今天單位有自己的食堂啦,發郵件收了工卡之後統一拿去啟用,以後就用工卡去食堂吃飯啦,早上2元,中午10元,晚上3元,都是自助噢,很爽,不過還是有一推人沒有第一時間啟用卡,也有的人啟用卡了忘記自己啟用了,我就是其中乙個,無奈下我只好到食堂自己去啟用卡了,餐廳只有乙個機會卡的櫃檯所以啟用的時候需要排隊,還...