澄清:MVC、MVP、MVVM

问题描述 投票:0回答:1

我正在阅读 MVC、MVP、MVVM 之间的区别

来源:这里

alt text

我的疑问是,图表(MVP)(MVVM)显示了Modle和Presenter、Model和ViewModel之间的双向箭头。

Presenter 和 ViewModel 显然知道 Model。但这是否意味着 Model 知道 Presenter 和 ViewModel?

model-view-controller mvvm mvp
1个回答
7
投票

Presenter 和 ViewModel 显然知道 Model。但这是否意味着 Model 知道 Presenter 和 ViewModel?

不。至少,从我看待这些模式的方式来看,模型(理想情况下)应该不知道除了它自己之外的任何东西。在我对 MVVM 的讨论中,我试图通过仅向模型显示单向箭头来强调这一点。

但是,许多人使用往返于模型的双向箭头来表示模型引发的事件。这在某种程度上取决于您如何看待这一点 - 模型可能需要通知其内部的其他层的变化。根据语言/框架的不同,这可能看起来像是模型与其他层“对话”。然而,我尝试非常小心地从模型的角度保持完全中立。例如,在 C# 中,我只使用一个事件,其中类型都是特定于模型的。它知道“某物”可能正在监听该事件,但不知道该“某物”的组成部分。

© www.soinside.com 2019 - 2024. All rights reserved.