谦虚的对话与MVC

时间:2008-10-23 10:26:23

标签: unit-testing user-interface design-patterns

为什么我应该选择使用一个而不是另一个?在哪种情况下?

我主要关注桌面应用程序,个人而言,我发现简单易用的对话框更容易使用。

4 个答案:

答案 0 :(得分:8)

在MVC中,您仍然会使用“简陋”的对话框。除了它的所有业务逻辑之外,它将被移植到其他地方的另一个类。

http://en.wikipedia.org/wiki/Model-view-controller

你需要权衡MVC的投资是否值得 - 特别是如果你只使用一个简单的对话框。

答案 1 :(得分:7)

我发现关于模型视图控制器/演示者模式的优缺点的最佳讨论之一是由Martin Fowler编写的:http://martinfowler.com/eaaDev/uiArchs.html

简而言之,通过选择使用MVC变体,您可以提高视图的可测试性(对话框)。另一方面,如果你不希望对话框变得非常复杂,那么在对话框类中保留所有逻辑就可以了,但随着复杂性的增加,可测试代码的好处也会增加。

这真是一个判断电话。

答案 2 :(得分:6)

“谦虚”对话本身已经是MVC。你有:

  • M,对话框消息的内容。
  • V,用户可以看到的窗口和小部件。
  • C,对话框的显示方式以及响应用户活动的方式。

您的GUI框架或包装库可以无缝地为您提供MVC,而不必考虑它,但它仍然是MVC。

答案 3 :(得分:1)

没有简单的答案。

你应该使用任何可以让你的生活更轻松的事情。

如果对话框非常简单,并且知道肯定会保持这种状态,请使用简洁的对话框。

如果你有更复杂的东西,比如相同数据的多个视图演示,或者你知道你的简单对话将随着时间的推移变得更加复杂,那么,无论如何,都要使用MVC。

你也可以看看蚂蚁MVP模式作为MVC的替代品。