我想問問pro開發人員他們是如何管理一個大窗口窗體類的。將關鍵字partial
與不同文件分開是不是一個好主意?那是,我是到目前爲止在做的事情,但它外幣unnecessry Designer文件,當你在VS上他們雙擊,一個空白的winform會彈出:管理一個很大的WinForm代碼
所以我做什麼,基本上是組事件和代碼邏輯爲每個相關的控件組在一個文件中。
我想問問pro開發人員他們是如何管理一個大窗口窗體類的。將關鍵字partial
與不同文件分開是不是一個好主意?那是,我是到目前爲止在做的事情,但它外幣unnecessry Designer文件,當你在VS上他們雙擊,一個空白的winform會彈出:管理一個很大的WinForm代碼
所以我做什麼,基本上是組事件和代碼邏輯爲每個相關的控件組在一個文件中。
我的回答是「我不知道」。如果你在一個單獨的類(在這種情況下是一個表單)中需要很多代碼,這通常意味着你的類正在做很多事情,你需要減少耦合。實現此目的的一個好方法是使用一種MVC或MVP模式形式將邏輯放在另一個位置,並使用UserControls,以便您可以在不同的控件中使用不同的功能(使用其控制器或演示者,具體取決於您是否實現了MVC或MVP)。分而治之。
我認爲只應用MVP並不是一個完整的答案,我們可以應用壞這個概念,並獲得3個文件,一個用於視圖(** sample.designer **文件)另一個用於控制(** sample.cs **文件)和模型的最後一個(** model.cs **)。這種模式和其他模式必須伴隨着良好的課堂/組件設計。 –
是的,這就是爲什麼我也建議爲表單和控件建立一個凝聚力模型。無論如何,你總是可以嚴格應用一個概念。 – ivowiblo
我不認爲我是一個專家,但是一旦我們遇到了一個類似的問題,一個沒有停止成長的主要形式。
該解決方案只是OOP,可以創建獨立和可重用的類,這些類可以位於具有內部可見性的相同名稱空間中。
例如,有你有ComparisionForm.Menu看起來是可以從主代碼獨立的在ComparisionForm。
從視圖另一點「可讀性」 .-部分類是有用的,但考慮到即使在不同的文件中的代碼劃分,邏輯並不總是分割,使代碼難以閱讀,理解並最終難以維護。
邏輯上劃分我的班級是我的解決方案。你知道他們說什麼「分而治之」
看來「分而治之」就是這裏的口號:P – ivowiblo
不親,但我的兩分錢是:不要有一大類。將大部分代碼提取到其他類。
你也可以獲得,你將能夠使大部分方法private
,從而減少智能感知「噪音」。
你是什麼意思的「大」? –
@Bryan一個窗口窗口,執行10000行代碼......我認爲它很大! –
我同意這很大。請參閱下面的ivowiblo的答案......重構的時間。 –