首页 >后端开发 >C++ >ViewModel 或 Model:INotifyPropertyChanged 应该位于 MVVM 中的什么位置?

ViewModel 或 Model:INotifyPropertyChanged 应该位于 MVVM 中的什么位置?

Barbara Streisand
Barbara Streisand原创
2025-01-02 13:00:39484浏览

ViewModel or Model: Where Should INotifyPropertyChanged Live in MVVM?

INotifyPropertyChanged 在 MVVM 中应该在哪里实现:ViewModel 还是 Model?

开发 MVVM 应用时,会出现 ViewModel 还是 Model 的问题应实现 INotifyPropertyChanged 接口。虽然许多示例都显示模型实现此接口,但 Josh Smith 的 CommandSink 示例采用了不同的方法,让 ViewModel 实现它。

模型 INotifyPropertyChanged 实现的基本原理

一些争论模型不应实现 INotifyPropertyChanged,因为它不是特定于 UI 的。然而,这个论点忽略了这样一个事实:该界面仅通知更改,而不考虑 UI 的参与。因此,它适用于其他用例,例如触发非 UI 逻辑。

ViewModel INotifyPropertyChanged 实现的基本原理

其他支持 ViewModel 实现 INotifyPropertyChanged,因为它简化数据绑定。它消除了模型上复杂的事件处理程序或将属性更改从 ViewModel 传播到模型的需要。

有标准方法吗?

尽管有这些争论,这个问题没有明确的答案。 MVVM 允许实现灵活性。做出决定时请考虑以下因素:

  • 性能:在大多数情况下,模型未接收外部更新,在模型中实现 INotifyPropertyChanged 可能会产生不必要的性能开销。
  • 易于开发: 在 ViewModel 中实现 INotifyPropertyChanged简化了绑定,特别是在处理可能过时的数据时。
  • 可测试性:当模型不实现 INotifyPropertyChanged 时,模拟模型会变得更容易。

结论

最终,决定取决于您的项目的具体要求。权衡每种方法的优缺点以确定最合适的解决方案。避免教条并探索不同的实现,以找到最适合您的应用程序的实现。

以上是ViewModel 或 Model:INotifyPropertyChanged 应该位于 MVVM 中的什么位置?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn