3

我最近在 StackoverFlow 上问了一个关于 MVC 的问题:可以在桌面应用程序开发中使用 MVC 设计模式/架构模式吗?

根据提供的答案,我开始研究如何在 Windows 窗体应用程序中实现这一点。我遇到了以下 CodeProject 文章: http: //www.codeproject.com/KB/cs/model_view_controller.aspx

在文章下方的评论中,某些用户认为(尽管这是一篇好文章)它实际上是观察者模式。首先,但不太重要的问题是,是否有人同意或不同意这一点,为什么?

关于第二个也是更重要的问题:我正在尝试在 .NET 中构建一个小型任务列表程序。它会非常小,希望很快。一般来说,对于这样的项目,什么是更好的架构?观察者模式还是 MVC 模式?还是另一种模式?

谢谢

4

3 回答 3

3

(这篇文章不是 MVC AFAIK 的示例,原因很简单,因为没有控制器。如果你问我,它更接近 .net 数据绑定。)
MVC 不是观察者模式。MVC 关注关注点分离。模型、视图和控制器都做一项工作,并信任其他人做他们的工作。在某种程度上,控制器“指导”视图并告诉它如何对更改做出反应(纯 MVC)。控制器还与模型进行适当的交互(其职责是封装数据并执行约束/规则)。在 MVC 中,控制器是所有活动的起点——用户输入首先由控制器接收。但是也有像 MVP 这样的变体,其中用户输入首先由视图接收,然后推送/与演示者同步。

观察者模式是你想要观察另一个对象状态变化的地方。所以你可以说 .net 事件遵循观察者模式

如果它真的很小,忘记模式,只需编写代码而不用担心架构......遵循良好设计的启发式/原则

如果您遇到设计问题或者它开始变得一团糟,那么请引入模式营。

于 2008-11-21T06:09:54.723 回答
1

我同意这篇文章不是 MVC。它更多的是观察者模式的实现。.NET 中的观察者模式可以通过使用事件来实现,本文就是这种情况。

MVC 需要一个控制器类来控制对来自模型或视图的请求执行什么操作。应用 MVC 是一种非常好的编程实践,因为它极大地促进了关注点分离。使用 mvc,您将拥有一个更简洁、更可扩展和更可测试的应用程序。还有一点需要注意,您仍然可以将观察者模式应用于 MVC 应用程序。他们不会互相矛盾。

===========

回答您的第二个问题:哪种模式最好?我认为你处理软件开发的方式是相当错误的。你不应该太担心这些事情,直到你遇到问题。例如,如果这个对象改变状态,我需要这些其他对象对其做出反应,因此我将实现一个观察者模式。

如果我是你,我会先从模特方面开始,然后从那里拿东西。

于 2008-11-21T05:54:18.483 回答