架构设计之MVP

一、简介
  MVP (Model-View-Presenter),MVP 是从经典的模式MVC演变而来,它们的基本思想有相通的地方:Controller/Presenter负责逻辑的处理,Model提供数据,View负责显示。

二、运用MVP

Presenter
  相当于model和view的协调者,作为View和Model的沟通的桥梁,它从Model层检索数据后返回给View层,将View与Model分离开来,使得View和Model之间没有耦合。

Model
  主要提供数据的存取功能。Presenter需要通过Model层来存储、获取数据。

View
  负责界面数据的展示,与用户进行交互。
  
在MVP里,Presenter完全把Model和View进行了分离,主要的程序逻辑在Presenter里实现。而且,Presenter与具体的View是没有直接关联的,而是通过定义好的接口进行交互,从而使得在变更View时候可以保持Presenter的不变。 View只应该有简单的Set/Get的方法,用户输入和设置界面显示的内容,除此就不应该有更多的内容,绝不容许直接访问Model,这就是与MVC很大的不同之处。

三、MVP优点和缺点

优点
降低耦合度,实现了Model和View真正的完全分离。
模块职责划分明显,层次清晰。
Presenter可以复用,一个Presenter可以用于多个View,而不需要更改Presenter的逻辑(当然是在View的改动不影响业务逻辑的前提下)。
如果我们把逻辑放在Presenter中,那么我们就可以脱离用户接口来测试这些逻辑(单元测试)。

缺点
由于对视图的渲染放在了Presenter中,所以视图和Presenter的交互会过于频繁。还有一点需要明白,如果Presenter过多地渲染了视图,往往会使得它与特定的视图的联系过于紧密。一旦视图需要变更,那么Presenter也需要变更了

发布了83 篇原创文章 · 获赞 93 · 访问量 13万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章