17

我试图了解 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

适配器/演示者“知道”视图和模型,但视图和模型不知道除了他们自己之外的任何人。

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

4

1 回答 1

12

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

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

于 2013-07-21T20:38:04.497 回答