我一直在試圖編碼這樣的東西:瞭解如何使用單例模式?
1類創建一個類2(類t =新類())的實例。這個實例可以在1,2和3類中使用。 我一直在找東西,找到了「Singleton Pattern」。我不明白,我怎麼落實到我的代碼,這雖然和來源公正的幾個都在說不同的東西......
感謝您的幫助,非常感謝:)
我一直在試圖編碼這樣的東西:瞭解如何使用單例模式?
1類創建一個類2(類t =新類())的實例。這個實例可以在1,2和3類中使用。 我一直在找東西,找到了「Singleton Pattern」。我不明白,我怎麼落實到我的代碼,這雖然和來源公正的幾個都在說不同的東西......
感謝您的幫助,非常感謝:)
辛格爾頓例子:如果你有一個班級電話簿,並且你想讓你的程序的每一個班級都指向同一個電話簿。您將使Class Phonebook成爲Singleton-Class。
換句話說:使用Singleton模式來確定每一個其他代碼是指單一類的同一個對象。
class Phonebook {
//Make the constructor private so no one can create objects, but this class
private Phonebook() {
}
// to static members to hold (m_Instance) and get (getInstacnce) the Singleton Instance of the class
private static Phonebook m_Instance;
public static Phonebook getInstance() {
if (m_Instance == null) {
// first call to getInstance, creates the Singelton Instance, only we (Phonebook) can call the constructor;
m_Instance = new Phonebook();
}
return m_Instance; //always the same Instance of Phonebook
}
... // Members of the Phonebook (add/getPhoneNumber)
}
軟件的每個部分都會得到相同的電話本實例。所以我們可以註冊phonenumbers,每隔一個班級都可以閱讀。
...
Phonebook l_Phonebook = Phonebook.getInstance();
l_Phonebook.addPhoneNumber("Yoschi", "01774448882")
...
// somewhere else
Phonebook l_Phonebook = Phonebook.getInstance();
Phone.getInstance().call(l_Phonebook.getPhoneNumber("Yoschi"));
下面是描述的鏈接:
http://en.wikipedia.org/wiki/Singleton_pattern
樣品代碼將是
public class singleton
{
public static singleton _obj;
private singleton()
{
// prevents instantiation from external entities
}
public static singleton GetObject() // instead of creating new operator, declare a method and that will create object and return it.
{
if (_obj == null) //Checking if the instance is null, then it will create new one and return it
//otherwise it will return previous one.
{
_obj = new singleton();
}
return _obj;
}
public void printing(string s)
{
Console.WriteLine(s);
}
}
這是一個C#代碼但其概念是一樣的java。
OP標記的java。您的示例代碼是C#。 – 2014-09-21 00:02:37
是的,我可以得到一個Java代碼。 – 2014-09-21 00:22:36
第3類與第1和第2類有什麼關係? – 2014-09-20 23:37:13
試一試,發佈代碼,我們可以從那裏幫助你。你明白Singleton模式的目的是什麼嗎? – 2014-09-20 23:40:15