【问题标题】:Is MVVM pattern a symbiote of MVC + PAC patterns?MVVM 模式是 MVC + PAC 模式的共生体吗?
【发布时间】:2013-07-04 14:54:19
【问题描述】:

我浏览了维基百科并找到了这样一篇文章:

http://en.wikipedia.org/wiki/MVC4WPF

链接上方的一部分:

MVC4WPF 是 Information Control Corporation 为基于模型-视图-控制器 (MVC) 和演示-抽象-控制 (PAC) 开发的 Windows Presentation Foundation (WPF) 开发而开发的开源、可扩展、自动化代码模式) 模式...

我知道,WPF/Silverlight 确实使用 MVVM 模式:Model-View-ViewModel。

那么 MVC4WPF 是 MVVM 的第一个版本吗?

我不太了解 WPF/Silverlight 的发展历史,但 MVVM 一直让我想起某种 MVC。

如果是真的,那么MVVM = MVC + PAC?

【问题讨论】:

    标签: wpf design-patterns model-view-controller mvvm pac


    【解决方案1】:

    每当我看到这样的问题时,我总会想到Dr. WPF's design pattern

    你想如何称呼你的独立关注点并不重要。你会听到很多 WPF 人谈论 MVVM,但它真正归结为试图让你的代码保持独立。在 MVVM 中,你有:

    • 模型 您的所有数据类。一无所知。
    • 查看您必须显示您的数据。它知道模型,但不知道如何获取它们。通过绑定“了解” ViewModel。根据您将它们连接在一起的方式,它甚至可以创建 ViewModel。
    • ViewModel 这是视图和模型之间的粘合剂。它可以了解视图,或者您可以尽力将视图隐藏在 ViewModel 中。

    在 MVC 中你有:

    • 模型 您的所有数据类。一无所知。
    • 查看您必须显示您的数据。了解模型,但不知道如何获取模型。
    • 控制器 这是视图和模型之间的粘合剂。它知道视图和模型。

    真的,最后一点就是所有的变化(因此 WPF 博士的 MV-poo)。而在 WPF 中,XAML 中的绑定非常好,为什么要编写一堆代码?随便调用它,如果 View 知道一些关于便便的信息,在 WPF 中会更容易。

    没用过 PAC 模式,说不出它的长处,但从Wikipedia 看来,它似乎与 MVC 非常相似。所以,我会把它归类为有点 MV-poo。

    现在,考虑到 MVC4WPF 自 2009 年以来就没有发布过(他们的文档网站已于 2013 年 7 月 6 日关闭),我建议您避开它。我不能说它的优点或缺点,但如果你想要一个好的 MVVM 框架,MVVM LightCaliburn.Micro 都有很好的支持和好评。

    我还要指出,并非所有应用程序都需要便便。 Mike Hillberg put this nicely.

    【讨论】:

    • “控制器 - 这是视图和模型之间的粘合剂。它知道视图和模型。” - 你确定那个说法吗?也许你想重新考虑一下。
    • 是的。从en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller - 控制器可以向其关联的视图发送命令以更改视图对模型的表示(例如,通过滚动文档)。它还可以向模型发送命令以更新模型的状态(例如,编辑文档)。
    • 在 MVVM 中,View 应该只知道 ViewModel,而不是 Model。对我来说,这是 MVVM 和 MVC 之间的主要区别,在 MVVM 中,View 知道 ViewModel,而 ViewModel 知道 Model。在 MVC 中,控制器知道模型和视图,这使得保持清洁变得更加困难。
    • 我可以看到这个论点,但如果你有一个模型类的DataTemplate,那么视图肯定有关于模型的知识。或DataGrid 中的列。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-26
    • 2011-07-02
    • 2016-08-25
    • 2013-03-04
    • 1970-01-01
    • 2011-03-23
    相关资源
    最近更新 更多