繁体   English   中英

分离Windows窗体和类C#

[英]Separating Windows Forms and Classes C#

我正在寻找一种设计C#应用程序的方法。 我理解3层模型,但是如何在一个好的C#设计中应用它。

我看了一些asp.net mvc教程,但我正在寻找一个基于Windows窗体的教程。

是否有任何书籍或网站可以学习实现这一目标的方法?

我相信传统的MVC对WinForms来说太过分了。 表单是视图,很少需要单独的控制器。 该模型只是一个类(通常实现INotifyPropertyChanged)。 您可以使用数据绑定来通知视图模型已更改。

重要的是最小化按钮下的代码。 如果是表单代码,它应该是(a)特定于UI或(b)委托对模型的调用。 任何业务逻辑都应该在模型中或模型所依赖的类中。

避免使模型成为上帝对象 它可以在内部委托给其他类。

编辑:您可能需要考虑将绑定数据移动到模型拥有的单独对象中。 我打电话给这个演示模型 ,但我不想在Fowler的口中说出来。

编辑2:重要 - 模型必须没有视图的知识没有UI代码 (如对话框)。

首先你应该知道的是,设计模式并非一刀切,因此没有“实现设计模式的方法”。

如果你只是指三层模型,那么MVC是一个很好的选择,因为它清楚地将每一层与另一层分开,因为Windows表单开发寻找Entity Framework(或只是LINQ)的教程,这些教程沿着处理应用程序逻辑的类,成为你的模型层,所有表格,沿着用于呈现数据的类,都是你的观点,当然,用户控制器很好......那就是你的控制器。

我建议你看一下DoFactory网站,它对很多设计模式都有很好的报道。

另外我应该指出,你可能找不到doFactory中的实现,这只是一堆设计模式的参考。 JIC。

大家好,如果您使用的是Win Forms,我建议您选择MVP模式。 还有一个模式MVVM(主要用于WPF和Silverlight),但我不知道它是否适用于Win Forms。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM