模型-视图-控制器(MVC)与模型-视图-展示器(MVP)

4

你有什么好或坏的项目经验要分享吗?

2个回答

2

我有一些技巧要分享,这些都来源于我的编程经验。

MVC - 这种模式/架构非常古老,并经过实践考验。对于基于Web的项目来说非常棒,因为视图与服务器(和模型)是分离的。

但是,在模型可用时,我认为有更好的模式可以替代MVC。

MVP - 当你没有数据上下文允许绑定时使用它(例如WinForms)。此外,如果由于某些原因无法使用ASP.NET MVC,但仍然可以使用ASP,则MVP可能是一个易于迁移的选择,以帮助将视图与模型分离。

最后,我知道这不是被问到的问题,但MVVM可能是最好的选择。如果你有一个数据上下文,它提供了完全功能的绑定方法,可以绑定到其他类的属性和方法(例如WPF),那么你可以使用它。MVVM优于MVP,因为它减少了代码量,因此您不再需要维护视图接口。

我的帖子MVVM vs MVP vs MVC:解释差异 对此进行了更详细的解释。


0
模型-视图-控制器(MVC)是一种软件架构[1],目前被认为是软件工程中使用的一种架构模式。该模式将“领域逻辑”(用户的应用逻辑)与输入和表示(GUI)隔离开来,允许独立开发、测试和维护每个部分。

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

Model-view-presenter 是一种软件模式,被认为是 model-view-controller 模式的一个衍生。

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

所以,

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

基本上:

  1. 模型包含与数据库和其他数据结构相关的所有代码。如果您有一个名为“页面”的表格,则会为其创建一个模型,并在其中创建用于选择、创建、更新和删除该表格中记录的函数,以及其他功能。

  2. 视图包含所有显示和UI元素,JavaScript代码,层叠样式表(CSS),HTML甚至PHP。

  3. 控制器将所有内容组合在一起。控制器中的每个函数都代表一个目标或路由。如果您有一个名为“/about”的目标,则您的控制器将具有一个名为about()的函数。基本上,控制器决定要运行哪个模型和哪个视图。这是视图和模型之间的契约。


3
这些是定义,而不是关于某事的观点(这就是所要求的)。 - The Student

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接