MVC在Winforms中无法实现?

时间:2010-08-08 10:18:50

标签: winforms model-view-controller mvp


基于经典MVC模式的定义,Controller负责处理用户输入并与模型交互,并确定要呈现的视图。

Wikipedia definition of MVC:
“控制器接收输入并通过调用模型对象来启动响应。控制器接受来自用户的输入,并指示模型和视口根据该输入执行操作。”

根据定义,是不是可以通过.NET winforms实现MVC?因为它总是应该接收输入的视图,即使它之后可以将请求委托给Controller。 在我到目前为止看到的winforms MVC应用程序中,这就是发生的情况,并且Controller NOT 直接接收输入并确定要呈现哪个View的那个。

对我而言,似乎所有winforms MVC实现都是MVP和NOT MVC的不同变体。

(我理解ASP.NET MVC遵循经典的MVC定义,因为控制器首先通过路由引擎接收输入,然后确定要呈现的视图等。)

有人可以澄清吗? 感谢。

2 个答案:

答案 0 :(得分:1)

  

它总是应该接收输入的视图,即使它之后可以将请求委托给Controller。在我到目前为止看到的winforms MVC应用程序中,这就是发生的情况,Controller是 NOT 直接接收输入的那个

Windows窗体设计器喜欢将控件的事件处理程序添加到窗体本身,但是 没有这样做。如果愿意,您可以使用任何其他类来处理这些输入事件。

但是,我肯定会建议使用MVP方法。设置相对容易,到目前为止对我来说效果很好。

您可能需要阅读问题"How would you implement MVC in a WindowsForms application?"的答案以获取更多信息。

答案 1 :(得分:0)

你是正确的MVP模式适用于Winforms,它工作得很好。一位朋友有一个带winforms的项目,他在那里应用了mvp模式。

我不确定,但我认为MVC无法应用于Winforms,因此我认为人们转向MVP的不同变体。