Model-View-Presenter和Model-View-Adapter之间有什么区别?

时间:2013-03-23 15:32:19

标签: mvp model-view-adapter

我试图了解Model-View-Presenter和Model-View-Adapter模式之间是否存在差异,如果是这样,那么差异是什么。我没有发现任何可以比较/对比它们的在线资源,所以我甚至不确定它们是否真的不同。

我发现他们的描述听起来与我完全相同。从我收集到的情况来看,在这两种情况下,控制流程基本上都是:

View <-- Adapter/Presenter --> Model
(where Adapter/Presenter can also respond to events from View and Model)

View: the UI
Adapter/Presenter: main logic; mediator between the UI and the data model
Model: the data model

适配器/演示者“了解”视图和模型,但视图和模型不了解除自己以外的任何人。

我希望这里有一个我完全不知道的微妙之处。它是什么?

1 个答案:

答案 0 :(得分:10)

我唯一能想到的是MVA通常与视图和模型之间有多个适配器有关。虽然没有什么可以阻止你在MVP中做到这一点,但我认为MVP意味着强大的黑社会。

更新(多年后):回想起来,我认为关键的区别在于控制流程。在MVP中,View触发/创建/调用Presenter,Presenter委托给模型并响应View。在MVA中,当消息进入时,选择适配器,然后在模型和视图之间进行调解。因为MVP视图触发/创建/调用Presenter,所以在多个Presenter之间进行选择(选择适配器)并不是一件简单的事情。