我試圖讓C#中的大型項目開啓輪子。我以前的經驗是在Delphi中,在默認情況下,每個表單都是在應用程序啓動時創建的,並在(gasp)全局變量中形成引用。所以我試圖讓我的思維適應一個100%面向對象的環境,而我的腦袋正在旋轉一點點。需要關於OOP哲學的建議
我的應用程序將有一個大集合的類大多數這些類只會真的需要一個實例。所以我在想:靜態類。我不是很確定爲什麼,但是我在這裏讀到的大部分內容都說如果我的類將持有一個狀態,我認爲這個狀態意味着任何屬性值,那麼我應該使用單例結構。好的。但是有些人因爲逃避我的原因認爲單身人士也是邪惡的。
這些類別都沒有在本程序中的任何地方使用的危險。所以他們當然可以像普通對象一樣正常工作(vs單件或靜態類)
然後存在對象之間交互的問題。我很想創建一個全局類,其中包含許多引用這些類的單個實例的公共靜態屬性。我也考慮過讓他們的屬性(靜態或實例,不知道哪個)MainForm。然後,我會讓每個類都知道MainForm作爲所有者。然後各種對象可以互相引用爲所有者。 對象1,所有者。 對象2等
我擔心電子墨水用完了,或者至少會讓任何人忍耐到足以讓我忍受這麼久的耐心。我希望我已經清楚地解釋了我完全混淆的狀態。我只是尋找一些關於我的情況的最佳實踐的建議。所有的投入都歡迎和讚賞。
由於提前, 大衛·詹寧斯
您可以刪除德爾福形式的全局變量和實例,並根據需要釋放他們。 – TrueWill 2010-05-19 02:49:18
感謝所有花時間回覆的人。你給了我很多想法。多麼偉大的社區。當我說大部分課程只需要一個實例時,我必須承認我誇大了我。事實上,它是大約12中的3個。再次感謝我鼓勵我退後一步,密切關注我的一些班級決策。這個網站將成爲我最重要的C#智慧源之一,而我正在加快步伐。 – 2010-05-19 12:21:22