2010-05-06 108 views
2

编写代码的最佳方法是什么?这是在Winforms中编写代码的最佳方法吗?

(1)一样直接编写代码在button_click()事件。

(2)请我写button_click()事件,并在一个类中写这个函数,然后那个函数我应该叫在button_Click() event.Like叫three-tier approach编写代码的功能代码 ?

button_Click()事件中,我写的代码保存记录csv file from datatable。所以我应该写代码button_Click()事件或者我应该做一个新的功能和新的一个类,并编写代码在该函数在新并在button_Click()事件中调用该函数。

这只是一个例子,但我说的是我的应用程序写的所有代码,哪个是appropriate and best way to write the code,有什么好处?请注意,我使用c#在Winforms中编写代码。

+0

请注意,解耦模型和视图并不意味着您只需从事件处理程序方法提取代码,并在其他地方放置完全相同的代码。额外的调用不会突然使其成为“MVC”甚至“三层”(尽管后者实际上是关于不同的事情)。你需要做的是将你所指定的功能模型化为模型类 - 从_model_透视图和面向对象的设计中有意义的方式 - 然后根据需要使用你的事件处理器中的那个功能。 – 2010-05-06 06:10:16

+0

还可以看看数据绑定,INotifyPropertyChanged和IBindingList BindingList 。通常,在你的模型类上实现的那些组合以及通过绑定连接到用户界面的组合无需编写事件处理程序。 – 2010-05-06 06:10:52

回答

2

你应该去单独的功能在不同的班级。您应该这样做,因为您将使代码可重用,并在用户界面和应用程序逻辑之间创建一个体面的分隔。像这样,你可以在不影响应用程序的其他部分的情况下更改UI。

而且看看MVC pattern,你会更好地理解这个念头。

我认为应该使用第一个选项的唯一情况是当它执行一些会影响UI的操作时,我仍然会在Form类的一个单独函数中创建它。

如果它影响UI,它应该在同一个类中,因为它是相关的,例如它是一个刷新网格的代码,我会将它放在同一Form类中的一个单独的方法中,因为可以使用它在里面的不同地方。所以改变用户界面对应用程序没有影响,你只需要让你的代码可重用&就可以维护。

+0

@Adrian Faciu,当需要改变UI对应用程序的其他部分的影响时,请澄清。 – Harikrishna 2010-05-06 05:38:44

+0

@Harikrishna我编辑了我的文章,我希望现在更清楚。 – 2010-05-06 06:06:16

0

这一切都取决于情况。

如果你要进行更新的形式,则最好是在窗体的更新代码。但是,如果有很多处理,那么确实有更好的设计来让一个单独的类来处理这个工作。

这一切都取决于情况。

0

一般情况下,你不希望在事件处理程序的任何逻辑,因为图形用户界面往往会触发相同的命令提供冗余机制(上下文菜单,菜单栏,工具栏,快捷键),以及事件签名不是兼容所有这些。然后问题就变成你的通用函数应该放在Form类还是数据模型中。

我常常在开始时表中提供的逻辑,然后根据需要它重构为模型类。许多小应用程序永远不会变得足够大,以至于可维护性需要多个类。只要你避免代码重复(即复制+粘贴),那么如果你觉得你需要它,重构将会很简单。

0

开发职位类总是很好的。因为它使您的代码可重用,并且它还实现三层体系结构。好处是它很容易理解。
重要的是,只有适当地开发你的课程才是有益的。在课堂上开发可以重复使用的方法。
另一个好处是它隐藏了代码的复杂性。

+0

对不起,但我不知道。只需在互联网上搜索...你可以得到很多有用的信息。 – Himadri 2010-05-06 06:33:02

0

将结构添加到代码有两种常用方法:自上而下和自下而上。自顶向下的结构来自设计工作,可能涉及正式或非正式流程以及纯粹的设计工件,如UML图或功能规范。自顶向下过程的最终目标是在代码中创建类和接口,以提供适当的结构以使代码可维护。这可能在您编写代码之前发生,或者作为迭代的一部分发生,但想法是您先创建结构,然后创建代码。

自底向上结构来自重构。例如,从点击按钮开始你的所有逻辑。当您添加与按钮单击操作相同的菜单项时,将您的按钮单击功能的代码移动到窗体上的私有成员函数中。当你在应用程序的不同部分需要相同的功能时,将私有成员函数使用的代码和状态变量封装到一个类中。

我推荐使用这两种方法。您的情况的正确组合取决于开发团队(大小,位置,沟通能力)和应用程序的大小。一般来说,大型应用程序需要更多的自上而下,而对于非常小的应用程序,最少量的自上而下设计就足够了。但是,即使是一个小应用程序,也应该有一些高层次的规划。

相关问题