專案中經常會遇到好多個類呼叫乙個類例項的情況,每次呼叫這個類都要例項化一下也就是new一下,這樣就會把原始類裡面的資料清空,得不償失,所以產生了單例模式的這種程式設計設計模式。
單例模式被設計出來就是為了確保乙個程式中只有乙個例項,並提供乙個全集訪問點,節省系統資源。
首先新建乙個單例類,把這個單例類的建構函式設定成private,讓這個類無法在外部被例項化。
無法從外部例項化,就要從內部例項化,然後在這個單例類裡提供乙個方法來和外部對接這個例項化的類。也就是說提供乙個獲取這個例項化的介面函式。
class
class_single
static
class_single g_cs =
null
;static
object g_locker =
newobject()
;public
static
class_single
getinstance()
}return g_cs;
}}
單例類已經封裝完成了,讓我們來在這個類裡面寫乙個方法來看看單例是怎麼應用int num =
0; public
intaddnum()
然後新建三個類,分別在這三個類中寫入一下方法來應用public
string
addnumstring()
最後再用三個按鈕呼叫這三個類,實現以下內容。
每按一次按鈕數字都會累加,並且不管哪個按鈕都行。
23種設計模式 單例模式
某些情況,如 執行緒池,乙個專案中匯流排程數量以及生命週期,可能需要統一控制 如果執行緒池自身可建立多個例項,那麼就無法統一控制,此時,只要能控制線程池物件的數量為乙個,那麼就可以實現統一控制的目標 注意 現實中真正使用純的單例模式並不多 如 spring bean 通過配置來決定是否使用單例 執行...
單例模式(23種設計模式)
單例模式 餓漢模式 class singletondemo public static singletondemo gets 懶漢模式 class singletondemo1 public static singletondemo1 gets return instance 單例模式,懶漢式,執行...
23種設計模式 單例模式
單例模式需要保證,構造方法一定是私有化的,並且類的全域性變數必須是靜態的,私有的 這樣才能有唯一的例項化途徑 錯誤 一 public class singleton public static singleton getinstance 上述方法,並沒有把類變數singleton設定為靜態的,這樣,...