我正在阅读 MVC、MVP、MVVM 之间的区别
来源:这里
我的疑问是,图表(MVP)(MVVM)显示了Modle和Presenter、Model和ViewModel之间的双向箭头。
Presenter 和 ViewModel 显然知道 Model。但这是否意味着 Model 知道 Presenter 和 ViewModel?
Presenter 和 ViewModel 显然知道 Model。但这是否意味着 Model 知道 Presenter 和 ViewModel?
不。至少,从我看待这些模式的方式来看,模型(理想情况下)应该不知道除了它自己之外的任何东西。在我对 MVVM 的讨论中,我试图通过仅向模型显示单向箭头来强调这一点。
但是,许多人使用往返于模型的双向箭头来表示模型引发的事件。这在某种程度上取决于您如何看待这一点 - 模型可能需要通知其内部的其他层的变化。根据语言/框架的不同,这可能看起来像是模型与其他层“对话”。然而,我尝试非常小心地从模型的角度保持完全中立。例如,在 C# 中,我只使用一个事件,其中类型都是特定于模型的。它知道“某物”可能正在监听该事件,但不知道该“某物”的组成部分。