爲什麼在AEinsam/HabReader使用此代碼:有關靜態方法和變量
private static User instance = null; // line:25
public static User getInstance() {
if (instance == null)
instance = new User();
return instance;
}
// line:31
我可以做課,而不會這種方法嗎?
爲什麼在AEinsam/HabReader使用此代碼:有關靜態方法和變量
private static User instance = null; // line:25
public static User getInstance() {
if (instance == null)
instance = new User();
return instance;
}
// line:31
我可以做課,而不會這種方法嗎?
這是(a 執行不力)Singleton。如果你省略這個靜態塊但不創建公共構造函數,那麼你的類可能沒用。如果您正在尋找一種替代方案,其行爲方式與我(和其他大多數人)的行爲方式相同,它將引導您訪問Enum Pattern
重點_poorly實施_ – 2013-05-03 20:38:56
@SotiriosDelimanolis,強調添加:) – 2013-05-03 20:39:33
爲什麼它'實施不佳'的一個原因是因爲它沒有定義一個私人默認構造函數'私人用戶(){} 」。這意味着仍然可以有此用戶類的多個實例。 – 2013-05-03 20:41:51
這是一個singleton模式,這意味着該類應該只有一個實例存在。
該代碼的編寫者希望確保只有一個User類的實例。這種設計模式被稱爲「單身」。
是的,你可以在沒有該方法的情況下創建一個類,但是該類可能有多個實例。
他沒有做很好的工作。 – 2013-05-03 20:39:12
是;可以創建一個將該代碼放入其中的類。 – SLaks 2013-05-03 20:37:06
這是一個糟糕的單身人士。 – 2013-05-03 20:37:12
@SotiriosDelimanolis +1指出它很糟糕,甚至有幾個原因 - 這是[JavaWorld文章](http://www.javaworld.com/javaworld/jw-04-2003/jw-0425-designpatterns.html)解釋一些問題。 – fvu 2013-05-03 20:39:52