【问题标题】:What types of objects should the ViewModel reference in the MVVM pattern?ViewModel 应该在 MVVM 模式中引用哪些类型的对象?
【发布时间】:2010-05-14 19:33:07
【问题描述】:

我见过很多 MVVM 的例子。我可以看到视图应该引用 ViewModel。我最近看到了一个 ViewModel 引用 View 的示例,这对我来说似乎是错误的,因为它会导致更紧密的耦合。鉴于 ViewModel 通常被描述为 View 和 Model 之间的中介,那么 ViewModel 是否比域对象的外观更多?我希望我在这里正确使用了“门面”这个词。

【问题讨论】:

    标签: wpf design-patterns mvvm


    【解决方案1】:

    你的直觉是对的; ViewModel 不应引用 View。

    请注意,这是“应该”。纯粹主义者说 ViewModel 甚至不应该引用诸如the Visibility enumeration 之类的 WPF 内容,但我不同意。除其他外,ViewModel 应该可以帮助您分离关注点并提高代码的可读性。如果您必须跳过障碍来避免引用属于 View 的内容,这表明您可能做得过火了。

    【讨论】:

      【解决方案2】:

      从技术上讲,视图模型应该引用模型,而不是视图。视图应该绑定到视图模型,并且视图模型应该公开方便的属性,以便使用模型中的数据进行绑定。

      显然,视图模型的复杂性取决于应用程序和模型中的数据。但将其视为“门面”并不是非常有害的(尽管在开发人员术语中并不完全正确)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-04-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-11
        相关资源
        最近更新 更多