【问题标题】:Combining MVVM and MVC in a picture在一张图片中结合 MVVM 和 MVC
【发布时间】:2014-02-08 14:28:46
【问题描述】:

这可能有点跑题了,所以我已经做好了随时点击删除按钮的准备。

我被要求向客户团队解释 MVVM 和 MVC 之间的区别。显然,他们更喜欢图片,因为我 60 分钟的谈话和举例说明源代码只会发出咕哝声和叹息声,但下面的图片让他们微笑并用一波满意的“ahaa”噪音奖励我。

现在,同一位客户要求我解释如何将这两种模式合并(并不是说这是一个好主意)。就个人而言,我以前没有这样做过,我会限制推荐它。但是,这样的图像将有助于获得所说的“ahaas”。在谷歌搜索、搜索等等之后,我一无所获。懒惰... hrmp... 有效率的我,不知道有没有人有相应的图片放在身边。

所以,我正在寻找视觉描述的扩展:从 MVC-MVVM 到 MVC-MVVM-MVVMC(或者最后一个的首字母缩写词可能是什么)。

【问题讨论】:

    标签: c# wpf model-view-controller mvvm


    【解决方案1】:

    http://geekswithblogs.net/dlussier/archive/2009/11/21/136454.aspx 上,您会发现一张很好的图片,它在一个图形中解释了 3 种模式。但在使用这张照片之前,请先询问 Darcy Lussier。

    如果您的客户更喜欢阅读 MSDN 杂志,这里有一篇文章介绍了这些模式在 WPF 应用程序中的应用:http://msdn.microsoft.com/en-us/magazine/dd419663.aspx#id0090009

    【讨论】:

    • 显然,我客户的团队不喜欢以任何形式阅读(我假设他们以某种方式通过了大学,在我看来这有点令人震惊,hihi)。他们在图表、图像和类似的东西上深深地爱上了。 (我知道,我知道 - 每次在他们的地方我都在想“什么鸭子?!”但除了鸭子之外,他们都是聪明的帅哥和帅哥。)
    【解决方案2】:

    使用图表中的术语,我对 MVVM 的解释如下:

    • 视图绑定到视图模型。例如。视图取决于视图模型,反之亦然。数据通过数据绑定传递回视图,这可以通过“触发事件”(如您的虚线箭头)来实现。但是,重要的是要注意,将“事件”定义为视图可以绑定到的属性等的是视图模型,而不是公开一组事件的视图。后者会创建对视图的依赖。

    • 视图模型操纵模型。然而,view-model 的另一个重要功能是它保持模型未表示的 UI 状态(例如当前选择等)。

    这是一个用 ASCII 画出来的微不足道的尝试:

    用户交互 | | 五 +------------+ |查看 | +------------+ | ^ | .势必会 五。 +------------+ |查看模型 | +------------+ | |操纵 五 +------------+ |型号 | +------------+

    【讨论】:

    • +1 表示 90 年代的闪光。但是,我的印象是 MVVM 和 MVP 模式在图表方面是相似的(在我使用的图像中,它实际上是 MVP,而不是 MVVM)。问题是(我可能没有说清楚——在这种情况下很抱歉)如何在同一张图中描述 MVC MVVM/MVP——称之为 MVCMV 或其他什么。或者我会在一张照片中拼凑起来之前把我的脑袋撞得血淋淋的?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-07
    • 2011-11-04
    • 1970-01-01
    • 2022-01-19
    • 2016-03-31
    • 1970-01-01
    相关资源
    最近更新 更多