單例設計模式解決的問題:保證一個類別在記憶體中的物件唯一性。
例如:當多程式讀取一個設定檔時,建議設定檔封裝成物件。會方便操作其中的數據,又要確保多個程式讀到的是同一個設定檔對象,就需要該設定檔對像在記憶體中是唯一的。
Runtime()方法就是單例設計模式進行設計的
保證對象唯一性的想法:
1. 不讓其他程式建立該類別物件;
2. 在本類別中建立一個本類別物件;
3. 對外提供方法,讓其他程式取得這個物件。
保證物件唯一性的步驟:
1.因為建立物件都需要建構函式初始化,只要將本類別中的建構子私有化,其他程式就無法再建立該類別物件;
#2.就在類別中建立一個本類別的物件;
#3.
##定義一個方法,回傳該對象,讓其他程式可以透過方法就得到本類對象。 (作用:可控)
#程式碼的體現:
1.私有化建構子;
2.建立私有並靜態的本類物件;
##########3.定義公有且靜態的方法,傳回該物件。 ################----------------------------------- -------------------------------------------
/********* 餓漢式 *********/
class Single(){
private Single() {} //私有化建構子
private static Single sg = new Single() ;//建立私有並靜態的本類別物件
# public static Single getInstance() { //定義公有靜態的方法,回傳該物件
return sg;
}
#}
#/********* 懶漢式:延遲載入方法 *********/
###class Single2(){
# # private Single2(){}
public static Single2 getInstance(){
#############如果( null == sg2 ){#################### ##### ########################################## sg2 = new Single2();############################################## ########################################################### ################################################ ## ########################################################### ########################################################### ########################################################### ################## ######################################### ##}########## #############
以上是什麼事單例設計模式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!