模型视图控制器与模型视图演示器

时间:2010-05-05 17:49:55

标签: model-view-controller mvp

你怎么说?你的项目有什么好的或坏的经历?

2 个答案:

答案 0 :(得分:2)

根据我使用每种技巧的经验,我有一些提示。

MVC - 这种模式/架构是旧的,经过试验和测试。非常适用于基于Web的项目,其中视图与服务器(和模型)分离。

但是,我认为当模型可用时可以使用更好的模式而不是MVC。

MVP - 当您没有允许绑定的datacontext时使用它(例如,WinForms)。此外,如果由于某种原因无法使用ASP.NET MVC但仍可以使用ASP,则MVP可能是一种简单的迁移,可帮助您将视图与模型分开。

作为最后一点,我知道没有被问过,但MVVM可能是最好的。如果你有一个datacontext,你可以使用它,它提供了一个功能完备的方法来绑定其他类的属性和方法(即WPF)。 MVVM优于MVP,因为它不再需要维护视图接口,因此减少了代码量。

我的帖子MVVM vs MVP vs MVC: The differences explained更详细地解释了这一点。

答案 1 :(得分:0)

  

模型 - 视图 - 控制器(MVC)是一个   软件架构[1],目前   被视为一种建筑模式   用于软件工程。该   模式隔离“域逻辑”(   来自用户的应用程序逻辑   输入和表示(GUI),   允许独立发展,   测试和维护每个。

http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller

  

Model-view-presenter是一个软件   模式,被认为是的衍生物   模型 - 视图 - 控制器模式。

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

<强>因此,

MVC是一种设计模式。设计模式是一种代码结构,允许快速复制通用编码框架。您可能会将设计模式视为构建应用程序的框架或框架。 MVC框架最明显的好处是它可以帮助您分离业务逻辑(数据库)和表示逻辑(设计)。

<强>基本上

  1. 模型包含与您的数据库和其他数据结构相关的所有代码。如果您有一个名为pages的表,那么您将拥有一个模型,其中包含用于从该表中选择,创建,更新和删除记录等功能的模型。

  2. 观看次数包含所有展示广告和用户界面元素,JavaScript代码,层叠样式表(CSS),HTML甚至PHP。

  3. 控制器将所有内容保持在一起。控制器中的每个功能代表一个目的地或路线。如果你有一个名为/ about的目的地,你的控制器将有一个名为about()的函数。基本上,控制器决定运行哪个模型和哪个视图。这是视图和模型之间的契约。