M:modle 提供数据
V: View 负责显示数据
P:Presenter 负责处理逻辑
MVP分为两种模式
- PV(Passive View)
被动的View,包含其中的UI元素(比如控件)的操作不是View本身控制
而是Presenter控制
-SoC(Supervising Controller)
Soc模式下,为了降低Presenter的复杂度,将简单的UI处理逻辑交给View(如数据绑定、数据格式化)
这些处理逻辑会体现在View Interface中(View实现的接口中)
MVP包含4个元素:
- View:负责UI元素的绘制,与用户进行交互(Android体现为Activity)
- View Interface:View需要实现的接口,View通过View Interface与Presenter交互,
降低耦合,进行单元测试 - Modle: 负责存储,检索,操作数据(有时候也实现一个Modle Interface降低耦合)
-
Presenter: View与Modle进行交互的纽带,负责处理用户交互的逻辑
PV模式下:MVP与MVC的不同
mvp:view不与modle直接通信,presenter充当中间人
mvc:modle由presenter进行更新以后,会直接通知View更新显示
Android MVP 详解(上)
李旺成/MVP详解