我一直用來教我自己代碼的c#項目迄今爲止是一個包含大量函數和大量「全局」靜態變量的巨大形式。風格/架構健全性檢查多個類和形式
在閱讀了這裏,做了一些教程等,我現在試圖通過重構它的過程來正確使用類和封裝。
我的課:
Program.cs
- 基本上什麼也不做,但初始化Form1
。Form1.cs
=生成並修改所有UI。在其他類中調用公共函數,並且有一些其他類可以調用的公共函數來更新它。UiStrings.cs
=包含所有錯誤信息,對話框,說明等Options.cs
=跟蹤一些設置,建立和更新路徑安裝文件,執行基於改變用戶界面代碼。Updater.cs
=追蹤當前版本,下載資產,將它們放在正確的位置,並調整選項。Installer.cs
=根據當前選項,處理安裝/卸載/備份所有資產。
最初,我在Form1
中創建了其他每個類的實例。這對Form1
有效,可以訪問UiStrings
或Options
中的函數和屬性。然而這些類不能訪問彼此的部分,可能是因爲它們沒有被實例化。
這導致我走向所有我的自定義類,如UiStrings
和Options
靜態(因爲我不需要它們中的任何一個的多個實例)。這也意味着我必須使每個類中的每個函數和屬性都是靜態的。
這是一個合理的解決方案,一個真正知道他們在做什麼的人會來嗎?
它到目前爲止似乎在我的測試工作,但我的原始嘗試沒有類的工作都很好,直到我知道它是如何錯誤。
「UiStrings」和「Options」是靜態的或實現單例模式是有意義的。但恕我直言,*一切*靜態是一種代碼味(大量的全局變量)。 –