1.MVP介绍
MVP(Model-View-Presenter)模式
在MVP模式里通常包含4个要素:
(1)
View:负责绘制UI元素、与用户进行交互(在Android中体现为Activity);
(2
)View interface:需要View实现的接口,View通过View interface与Presenter进行交互,降低耦合,方便进行单元测试;
(3)
Model:负责存储、检索、操纵数据(有时也实现一个Model interface用来降低耦合);
(4)
Presenter:作为View与Model交互的中间纽带,处理与用户交互的负责逻辑。
2.为什么使用MVP
1.解决activity的代码冗余
2.完全分离UI界面与代码逻辑
3.通过
自定义类实现这个interface来模拟Activity的行为对Presenter进行单元测试,省去了大量的部署及测试的时间。
3.MVP与MVC
他们的优点:
(1)降低耦合度
(2)模块职责划分明显
(3)利于测试驱动开发
(4)代码复用
(5)隐藏数据
(6)代码灵活性
最关键的差异:
- View不直接与Model交互,而是通过与Presenter交互来与Model间接交互
- Presenter与View的交互是通过接口来进行的,更有利于添加单元测试
- 通常View与Presenter是一对一的,但复杂的View可能绑定多个Presenter来处理逻辑
MVC模式:
- View可以与Model直接交互
- Controller是基于行为的,并且可以被多个View共享
- 可以负责决定显示哪个View
4.小示例
可以从EditText读取用户信息并存取,也可以根据ID来从后台读出用户信息并显示。
根据MVP原则来进行编码的目录结构:
源码:http://download.csdn.net/detail/fwy19930618/7270921