为什么在处理 WPF 时我们选择 MVVM 而不是 MVC 或 MVP?
使用它我们可以获得什么额外的好处?
编辑:
说实话,今天我去面试,也被问到了这个问题。我回答像 INotifyPropertyChanged , ICommand,IValue Converter.. 但他不满意。从此我提出了这个问题
提前致谢
最佳答案
我会向您指出一个特别有用的 video作者:杰森·多林格。
来自 WinForms 世界,实现任何 MVX 样式模式似乎都比其值(value)更麻烦,但在使用 WPF 几年后,我可以诚实地说,我不会考虑任何其他事情。整个范例都是开箱即用的。
首先,主要好处是实现 View
和模型
之间的真正分离。这实际上意味着,如果/当您的模型需要更改时,无需 View 即可更改,反之亦然。
其次,虽然您的 model
可能包含您的 view
中可能需要的所有数据,但您可能希望以您的 型号
不支持。例如,假设您的模型包含日期属性。在模型中,它可以单独作为 DateTime
对象存在,但您的 View 可能希望以完全不同的方式呈现它。如果没有 viewmodel
,您要么必须复制 model
中的属性来支持 View ,要么修改属性,这可能会严重混淆“模型”。
您还可以使用viewmodel
来聚合存在于单独的类/库中的模型部分,以便为view
提供更流畅的界面来处理。您非常不太可能希望以用户希望或希望向他们呈现数据的方式来处理代码中的数据。
最重要的是,您可以获得对 view
和 viewmodel
之间自动双向数据绑定(bind)的支持。
确实有一大堆额外的东西我可以讲,但杰森说它远比我能讲的更好,所以我的建议是观看视频。这样工作几天后,您会想知道如果没有它,您是如何度过的。
祝你好运。
关于wpf - 为什么选择 MVVM?它的核心优势是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1644453/