2012-06-13 25 views
0

我想问问pro开发人员他们是如何管理一个大窗口窗体类的。将关键字partial与不同文件分开是不是一个好主意?那是,我是到目前为止在做的事情,但它外币unnecessry Designer文件,当你在VS上他们双击,一个空白的winform会弹出:管理一个很大的WinForm代码

enter image description here

所以我做什么,基本上是组事件和代码逻辑为每个相关的控件组在一个文件中。

+0

你是什么意思的“大”? –

+0

@Bryan一个窗口窗口,执行10000行代码......我认为它很大! –

+0

我同意这很大。请参阅下面的ivowiblo的答案......重构的时间。 –

回答

2

我的回答是“我不知道”。如果你在一个单独的类(在这种情况下是一个表单)中需要很多代码,这通常意味着你的类正在做很多事情,你需要减少耦合。实现此目的的一个好方法是使用一种MVC或MVP模式形式将逻辑放在另一个位置,并使用UserControls,以便您可以在不同的控件中使用不同的功能(使用其控制器或演示者,具体取决于您是否实现了MVC或MVP)。分而治之。

+0

我认为只应用MVP并不是一个完整的答案,我们可以应用坏这个概念,并获得3个文件,一个用于视图(** sample.designer **文件)另一个用于控制(** sample.cs **文件)和模型的最后一个(** model.cs **)。这种模式和其他模式必须伴随着良好的课堂/组件设计。 –

+0

是的,这就是为什么我也建议为表单和控件建立一个凝聚力模型。无论如何,你总是可以严格应用一个概念。 – ivowiblo

0

我不认为我是一个专家,但是一旦我们遇到了一个类似的问题,一个没有停止成长的主要形式。

该解决方案只是OOP,可以创建独立和可重用的类,这些类可以位于具有内部可见性的相同名称空间中。

例如,有你有ComparisionForm.Menu看起来是可以从主代码独立的在ComparisionForm

从视图另一点“可读性” .-部分类是有用的,但考虑到即使在不同的文件中的代码划分,逻辑并不总是分割,使代码难以阅读,理解并最终难以维护。

逻辑上划分我的班级是我的解决方案。你知道他们说什么“分而治之”

+1

看来“分而治之”就是这里的口号:P – ivowiblo

0

我认为分离窗体代码的最好方法就是使用UserControl。

在我的情况下,当我有一个大班级时,我使用区域而不是部分班级。

+1

地区是万恶之源 – ivowiblo

+1

大班是万恶之源:) – Hyralex

+2

是的。但它就像有一间肮脏的房间,而不是清理它,你把它藏在地毯下面。 – ivowiblo

0

不亲,但我的两分钱是:不要有一大类。将大部分代码提取到其他类。

你也可以获得,你将能够使大部分方法private,从而减少智能感知“噪音”。