为什么要使用Model-view-controller?

时间:2009-09-08 14:02:32

标签: java user-interface model-view-controller

为什么开发人员应该关注模型视图控制器来设计GUI?开发人员是否应该注意设计GUI的其他元素?

8 个答案:

答案 0 :(得分:4)

MVC将帮助您根据所需的业务规则分离GUI的责任,可能以后您想重用某些代码或更改它,让MVC帮助您。

以下是来自Martin Fowler的GUI的其他架构。

http://martinfowler.com/eaaDev/uiArchs.html

模型 - 视图 - 演示者(MVP)

谦虚的观点

还有更多。

答案 1 :(得分:2)

如果您没有将模型与视图分开,那么当您发现要以不同方式呈现相同信息时,将很难进行重构。

答案 2 :(得分:2)

这些都是很好的答案,我会同意他们的意见,除非我偶然发现another way to do it,现在我宁愿挖掘沟渠而不是使用MVC。

答案 3 :(得分:1)

MVC实际上与界面设计没什么关系,就像实现和与应用程序的业务逻辑交互一样。

http://en.wikipedia.org/wiki/Model - 视图 - 控制器

答案 4 :(得分:1)

模型视图控制器架构仅意味着分离:

    1. Data (Model) 
    2. User interface (View)
    3. Logic of the application (Controller)

在小项目中可能看不到它的优点。但是,正如其他人所说,MVC在团队中工作时会派上用场,特别是当应用程序需要缩放时。

您想要熟悉的另一种技术是对象关系映射器。它是一组为数据库提供面向对象接口的类。

答案 5 :(得分:0)

MVC是现代应用程序开发的需要。看看Model-View-Controller

  

摘要:

     

如何模块化用户   Web的界面功能   应用程序,以便您可以轻松   修改各个部分?

     

模型 - 视图 - 控制器(MVC)   模式分离了模型   域名,演示文稿和   基于用户输入的动作分为三个   单独的班级[Burbeck92]:

     
      
  • 模型。该模型管理的行为和数据   应用程序域,响应   要求提供有关其的信息   国家(通常来自视图),和   响应改变的指示   国家(通常来自   控制器)。
  •   
  • 查看。该视图管理信息的显示。
  •   
  • 控制器。控制器解释鼠标和键盘   来自用户的输入,通知   模型和/或要更改的视图   合适的。
  •   

答案 6 :(得分:0)

我知道您将此标记为java,但这也可以应用于JavaFX甚至是基于Web的应用程序。

目前流行的WPF技术是Model-View-ViewModel,此处为

  • 模型代表您的业务层,此处您的业务逻辑位于此处,这与您的UI完全无关
  • 查看是您的控件的用户界面组件,主要是XAML标记
  • ViewModel :是您的UI将与之交互的数据组件,您还可以在此处定义与模型交互的命令。在某些方面,这可以被认为是控制器,但它具有状态,控制器通常不具有很多状态。

答案 7 :(得分:0)

模型 - 视图 - 控制器是封装程序不同部分的常用方法之一,但绝不是唯一的方法;还有很多其他选择。例如,许多GUI系统使用小部件+样式而不是视图+控制器。综合功能大致相同,但责任分离略有不同。在小部件+样式中,每个小部件的可视化表示与其动作紧密相关(有点像一堆微小的视图+控制器系统)。应用程序的整体外观和风格由样式决定(这是使视觉系统具有凝聚力的原因,而在MVC中,视图是使视觉系统凝聚力的原因。)

MVC非常常见,因为它通常易于理解和维护,并且可广泛应用。我的建议是要好好学习并经常使用它。但我也警告不要让它成为你的“锤子”(当你拥有的只是一把锤子时,一切都开始看起来像钉子)。了解其他选项并在适当时使用它们。