【发布时间】:2011-02-24 13:19:42
【问题描述】:
- 是 WPF 和 Silverlight 中的什么让 MVVM 如此适合他们?
- 是什么在 C++ 中,或者 C++ 缺乏什么,使得 MVVM 和 C++从不一起被提及?
【问题讨论】:
-
我一直想知道这个。
标签: c# .net c++ design-patterns mvvm
【问题讨论】:
标签: c# .net c++ design-patterns mvvm
MVVM(模型 - 视图 - 视图模型)是对 MVP(模型 - 视图 - 演示者)或 MVC(模型 - 视图 - 控制器)模式的改编,这两种模式都是 C++ 应用程序中非常流行的设计模式。设计模式的主要变化是更好地支持 WPF 和 Silverlight,因此 WPF 不适合 MVVM,更多的是 MVVM 适合 WPF。
这些更改主要围绕通过使用INotifyPropertyChanged 和ICommand 对象来干净地支持XAML 技术中存在的绑定和命令体系结构。再一次,这些更改对 C++ 没有帮助,因为它对这些高级概念没有任何本机支持。这并不是说您不能在 C++ 中模仿所有这些功能,而是在此过程中您会使用基本的 MVP/C 模式并且在大多数情况下“足够好”。
【讨论】:
这实际上与 C++ 或任何语言本身无关,更多的是因为它仅在 WPF/Silverlight 上下文中才有意义。
MVVM 带来的唯一其他视图/逻辑分离模式没有的就是 WPF/Silverlight 命令/绑定。使用 MVVM 的主要原因是利用 WPF/Silverlight 中内置的强大绑定系统,除非它们具有相似的模型,否则在不同的上下文中谈论它是没有意义的。
【讨论】:
一句话:Binding
【讨论】:
我认为MVVM 是专门为支持 WPF 而设计的。看起来微软专门开发了这种模式来支持他们为 WPF/Silverlight 设想的开发人员/设计人员工作流程。
因此,您可能在 WPF/Silverlight/XAML 世界之外没有过多了解它的原因有两个。
【讨论】: