【发布时间】:2010-11-04 09:37:38
【问题描述】:
嗯,在 MVVM 模式中,两个模型不应该相互认识或交谈是一种很好的做法。这意味着您不应该在另一个模型中创建一个模型的对象,然后注册事件或执行类似的事情。
但是,为什么,如果两个模型彼此认识有什么问题。我正在编写代码,如果我的两个模型彼此认识会发生什么。
【问题讨论】:
-
我认为这不利于松耦合!
标签: wpf silverlight mvvm prism
嗯,在 MVVM 模式中,两个模型不应该相互认识或交谈是一种很好的做法。这意味着您不应该在另一个模型中创建一个模型的对象,然后注册事件或执行类似的事情。
但是,为什么,如果两个模型彼此认识有什么问题。我正在编写代码,如果我的两个模型彼此认识会发生什么。
【问题讨论】:
标签: wpf silverlight mvvm prism
如果您打算以任何方式规避 MVVM,您希望有充分的理由(否则您不妨将其编写为传统的代码隐藏并节省一些输入):)
使用 MVVM 有几个好处,主要与非常松散的耦合、单元测试和重用有关。
松耦合的基本原理是这样的:
如果您要求您的 ViewModel 相互了解,那么您很可能缺少一个 Controller 对象来管理您的 2 个 ViewModel 和关联的 Model/View。
如果您能提供更多关于您的模型当前为何链接的信息,我或许可以提出替代方案。
【讨论】:
视图模型之间的互操作通常非常合适。毕竟,视图中的父/子关系涉及父视图模型持有一组子视图模型。在许多情况下,例如,父视图中命令的可用性取决于其子视图的状态。有时将其委托给单独的控制器类是合适的,但通常也不值得为此付出努力。
这实际上取决于您的应用程序的整体复杂性。有时这种努力是必不可少的。有时它只是镀金。
【讨论】: