我正在阅读有关MVC、MVP、MVVM之间的区别。来源:这里 我的疑惑是,图示(MVP)(MVVM)在模型和展示器之间显示双向箭头,在模型和视图模型之间也有箭头。 展示器和视图模型显然知道模型。但这是否意味着模型知道展示器和视图模型?
Presenter和ViewModel显然知道Model的存在,但这是否意味着Model知道Presenter和ViewModel的存在呢?不是。至少从我对这些模式的看法来看,Model应该(理想情况下)除了自身以外无需关注任何事情。在我的MVVM讨论中,我试图通过仅显示指向Model的单向箭头来突出这一点。然而,许多人使用双向箭头来表示由Model引发的事件。这在某种程度上取决于你如何看待这个问题——Model可能需要通知其他层其内部的变化。根据语言/框架的不同,这可能看起来像是Model“与”其他层通信。但是,我尽量小心地保持这在Model的视角下完全中立。例如,在C#中,我只使用一个事件,其中类型都是特定于Model的。它知道“某些东西”可能会监听事件,但没有任何关于组成那个“某些东西”的知识。