我一直在谷歌搜索大約小時現在,我仍然沒有一個明確的想法,單身。任何人都可以讓我更清楚一點,也許發佈一個代碼示例?什麼是單身人士,用簡單的英語?
我只知道你只能有一個給定類的實例。但是,你不能只爲這個使用靜態類?
在此先感謝!
我一直在谷歌搜索大約小時現在,我仍然沒有一個明確的想法,單身。任何人都可以讓我更清楚一點,也許發佈一個代碼示例?什麼是單身人士,用簡單的英語?
我只知道你只能有一個給定類的實例。但是,你不能只爲這個使用靜態類?
在此先感謝!
簡單的純英文版本是一個單例類,是隻有一個實例的類。
但是,你不能只爲那個使用靜態類嗎?
不。這不是Java中的「靜態」類。在Java中,「靜態」類可以像其他任何類一樣擁有多個實例。
使用static
關鍵字(對於類)意味着嵌套類的實例不綁定到封閉類的特定實例。這意味着嵌套類中的表達式不能引用封閉類中聲明的實例變量。
在Java 1.5之前(又名Java 5),在Java中不支持單例設計模式。你只用普通的Java來實現它們;例如
/** There is only one singer and he knows only one song */
public class Singer {
private static Singer theSinger = new Singer();
private String song = "I'm just a singer";
private Singer() {
/* to prevent instantiation */
}
public static Singer getSinger() {
return theSinger;
}
public String getSong() {
return song;
}
}
Java 1.5中引入了enum
類型可以用來實現單身等
/** There are two Singers ... no more and no less */
public enum Singer {
DUANE("This is my song"),
RUPERT("I am a singing bear");
private String song;
Singer(String song) {
this.song = song;
}
public String getSong() {
return song;
}
}
+1:最後有人用簡單的英文寫出了最簡單的答案。 – 2013-02-20 07:18:47
您的代碼示例讓我對所有事情都很清楚。非常感謝你 – Tiwaz89 2013-02-20 07:45:01
單例模式是一種設計模式,它將類的實例化限制爲一個對象。
注類的簡單的靜態實例和 單之間的區別:雖然一個單可以作爲靜態 實例來實現,它也可以被懶惰地構成,不需要存儲器或 資源,直到需要。另一個值得注意的區別是,靜態成員類不能實現一個接口,除非該接口只是一個標記 。因此,如果班級必須通過界面實現 合同,那麼它確實必須是單身人士。
所有的Wikipedia
單是私人構造函數的類,你只能得到它的一個實例。進一步的解釋,爲什麼這種編碼風格做,我建議你在這本書
http://www.wowebook.com/book/head-first-design-patterns/
第5章是所有有關維基給予單
檢查wiki和參考鏈接瞭解關於單身的章節。 http://en.wikipedia.org/wiki/Singleton_pattern – sudmong 2013-02-20 07:01:55
http://stackoverflow.com/questions/519520/difference-between-static-class-and-singleton-pattern – sudmong 2013-02-20 07:03:38
如果一個類只有一個對象(實例),這個被稱爲「單例」。你可能會想到強制只有一個對象,但這是邪惡開始的地方。 – cybye 2013-02-20 07:14:37