【问题标题】:Why do some people presents MVVP as an evolution/improvement over MVC whereas it is just some implementations? [closed]为什么有些人将 MVVP 呈现为 MVC 的演变/改进,而它只是一些实现? [关闭]
【发布时间】:2011-01-30 11:38:26
【问题描述】:

关于 MVVP 的常见神话是,Marting Fowler 最初确实创建了一个称为 MVP 的模式,然后 Grossman 将其演变为 MVVP。

他们是否仔细阅读了原始 MVC 论文? MVC 是作为概念提出的,例如,它从不强加一个单一的模型,它确实说模型可以分成多个较小的模型,具体取决于人们想要对系统建模的方式。因此,如果要创建被动视图或胖视图,重要的是许多视图和模型之间的双向绑定。

所以我很惊讶地读到一些文章,假装 MVVP 是一些新的现代发明,而 wpf 中的双向数据绑定是一场新的革命,对我来说,这个行业在具体化 40 年前建立的概念方面相当缓慢.这就是造成如此“软件危机”的真正原因,因为基本概念实施不当甚至缺乏,程序员成为行业供应商的囚徒。

这是原始论文 http://heim.ifi.uio.no/~trygver/themes/mvc/mvc-index.html

告诉我这些“现代”模式与 MVC 有什么根本矛盾。

【问题讨论】:

  • 那里有真正的问题,还是你只是在发泄?
  • 事实上,这提出了一个非常主观的问题。你能改进它以提出一个特定的问题吗?
  • 如果用户有此类问题,他们可能可以创建一个社区 wiki。至少我听说过。
  • @vorrtex:不,不再是。发布 CW 问题的功能在几个月前被移除。

标签: wpf silverlight model-view-controller frameworks


【解决方案1】:

你需要做你的功课! Martin Fowler 在 UI 模式(以及一般模式)方面知识渊博。请参阅他关于 UI 架构的文章:

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

Martin 提出了一种他称为表示模型 (PM) 的模式,其中 PM 是视图的表示,它独立于视图本身的 UI 控件:

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

他提到了这种模式是如何通过允许数据绑定的 UI 框架最容易实现的,从而减少了对“管道”代码的需求。

Gossman 首先创造了模型-视图-视图模型 (MVVM) 一词,但大多数人认为这与 PM 的模式相同,然而,大多数人认为 MVVM 是特定于 WPF / Silverlight 的 PM 版本,即 MVVM 通常意味着进一步遵循约定,例如使用 DataTemplates、ICommand 等 ...

这两种模式都不像 MVC,如果你将依赖关系绘制到每个模式的三个组件上,MVC 会创建一个三角形,而 PM 和 MVVM 是一条线。

大多数经验丰富的开发人员对模式采取务实的方法。它们是一种工具,请选择最适合您的问题的工具,如果您必须稍微弯曲它以使其适合,那就去吧。

别再强调了——写一些代码;-)

【讨论】:

    猜你喜欢
    • 2010-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-21
    • 2016-10-01
    • 1970-01-01
    相关资源
    最近更新 更多