設計模式:解決某一類問題行之有效的解決辦法(思想)。
單例(singleton)設計模式:
學習設計模式必須先弄清楚它是解決什麼問題的。
單例是解決什麼問題的呢?
可以保證乙個類的物件唯一性。
場景:比如多個程式都要使用乙個配置檔案中的資料,而且要實現資料共享和交換。必須要將多個資料封裝到乙個物件中。而且多個程式操作的是同乙個物件。那也就是說必須保證這個配置檔案物件的唯一性。
怎麼保證物件的唯一性?
1,乙個類只要提供了建構函式,就可以產生對個物件。完全無法保證唯一。既然數量不可控,就不讓其他程式建立物件。
2,不讓其他程式建立,物件何在?
自己在本類中建立乙個物件,這樣好處是什麼?可控。
3,建立完成後,是不是要給其他程式提供訪問的方式。
怎麼實現這個步驟呢?
1,怎麼就不能不讓其他程式建立物件呢?
直接私有化建構函式,不讓其他程式建立物件的初始化。
2,直接在本類中new乙個本類物件。
3,定義乙個功能,其他程式可以通過這個功能獲得本類的物件。
**體現:
//餓漢式
class single
//3,定義乙個方法返回這個物件。
public
static single getinstance()
}//懶漢式
//單例的延遲載入方式
class single2
public
static single2 getinstance()
}class singledemo
}
單例的簡單應用:
//描述超人
class superman
public
static superman getinstance()
public
void
setname(string name)
public string getname()
public
void
fly()
}public
class test
}
物件導向 單例設計模式
單例設計模式 就是保證該類在程式中只能存在乙個物件,所以不能讓別人例項化該類,所以要私有化 private 該類的建構函式,但是你要為別人提供乙個該類的唯一物件,所以你要在該類中定義乙個靜態的方法返回本類物件。設計模式 解決某一問題最行之有效的方法 單例設計模式 解決乙個類在記憶體只存在乙個物件 想...
物件導向 單例設計模式
單例設計模式 就是保證該類在程式中只能存在乙個物件,所以不能讓別人例項化該類,所以要私有化 private 該類的建構函式,但是你要為別人提供乙個該類的唯一物件,所以你要在該類中定義乙個靜態的方法返回本類物件。設計模式 解決某一問題最行之有效的方法 單例設計模式 解決乙個類在記憶體只存在乙個物件 想...
PHP物件導向 單例模式
單例模式 singleton pattern 單例模式 singleton pattern 是最簡單的設計模式之一。這種型別的設計模式屬於建立型模式,它提供了一種建立物件的最佳方式。這種模式涉及到乙個單一的類,該類負責建立自己的物件,同時確保只有單個物件被建立。這個類提供了一種訪問其唯一的物件的方式...