考虑以下两种情况:
- 用户按下视图中的按钮(例如Fulfill Order),我们希望视图立即更新(禁用按钮、添加进度条等)
- 服务层引发业务事件,最终必须反映在视图上(例如,产品缺货)。
这两种情况都合法地需要某种机制X来更新视图模型。使用 MVVM,视图可以通过在事件处理程序中设置视图模型的属性、通过命令绑定或通过其他一些机制来完成此操作。
服务层可以使用某种机制Y来做到这一点。例如,在业务/域模型中引发事件、创建操作视图模型的命令、调用视图模型上的方法等。
事实上,X和Y可能是相同的机制(或模式)。
这样做有什么好处,既符合 MVVM 的精神,又是 DRY 吗?