一、引言
从老大搭好的框架中看到了MVP的设计模式,一头雾水不知如何使用,特意去网上学习,做了Demo,特来做下纪录。
二、初识MVP
MVP模式(Model-View-Presenter)可以说是MVC模式(Model-View-Controller)在Android开发上的一种变化,进化模式。
Model:就是JavaBean实体类,用于保存实例数据
Controller:控制器用于更新UI界面和数据实例
View:其实就是程序的UI界面,用于向用户展示数据以及接收用户的输入
Model:负责处理数据的加载或者储层,比如网络或本地数据库获取数据等..
Presenter:控制器用于更新UI界面和数据实例
View:负责界面数据展示,与用户进行交互
MVP模式的核心思想:
MVP把Activity中的UI逻辑抽象成View接口,把业务逻辑抽象成Presenter接口,Model类还是原来的Model。
这就是MVP模式,现在这样的话,Activity的工作的简单了,只用来响应生命周期,其他工作都丢到Presenter中去完成。从上图可以看出,Presenter是Model和View之间的桥梁,为了让结构变得更加简单,View并不能直接对Model进行操作,这也是MVP与MVC最大的不同之处。
MVP的使用:
1、创建IPresenter接口,把所有业务逻辑的接口都放在这里,并创建它的实现PresenterCompl(在这里可以方便地查看业务功能,由于接口可以有多种实现所以也方便写单元测试)
2、创建IView接口,把所有视图逻辑的接口都放在这里,其实现类是当前的Activity/Fragment
3、由UML图可以看出,Activity里包含了一个IPresenter,而PresenterCompl里又包含了一个IView并且依赖了Model。Activity里只保留对IPresenter的调用,其它工作全部留到PresenterCompl中实现
4、Model并不是必须有的,但是一定会有View和Presenter
三、MVP实现Login-Demo
View interface
Presenter
Model
activity
model是可以不要的。
四、BaseMVP MVP的简单封装
BasePresenter
BaseView interface
BaseActivity
五、总结
这只是简单的使用,等以后技术高点的时候,在写一片深入的。