了解相关更多技术,可参考《我就死磕安卓了,怎么了?》,接下来谈一谈咱们来学习一下MVP的基本认识。html
你们对MVC的架构模式再熟悉不过。今天咱们就学习一下MVP架构模式。java
因为对视图的渲染放在了Presenter中,因此视图和Persenter的交互会过于频繁。android
还有一点你须要明白,若是Presenter过多地渲染了视图,每每会使得它与特定的视图的 联系过于紧密。一旦视图须要变动,那么 Presenter也须要变动了。好比说,本来用来呈现Html的Presenter如今也须要用于呈现Pdf了,那么视图颇有可能也须要变动。git
效果图:github
发起获取数据请求,而且把获取的数据或者错误信息回调给持有的Presenter。除了发起请求功能外,通常咱们还须要一个取消请求的方法。mvc
因此Model层主要的功能是:
Presenter层:
这层主要负责通知Model层向服务器发起请求并接收Model层回调的数据或者错误信息,而且这一层还要负责把数据或者错误信息处理后回调到View层,由View层负责显示。
通常在网络请求中的错误信息分为两种,一种是网络设备的网络状态错误,没法发送请求;另一种是服务器拒绝了此次请求。因此Presenter的主要功能是:
View层:
在MVP模式中,View层是一个接口。它的首要任务是把Presenter处理后的数据传到具体的原生控件中显示,而且控制是否显示加载进度条。
因此View层的主要功能是:
MVP把Activity中的UI逻辑抽象成View接口,把业务逻辑抽象成Presenter接口,Model类仍是原来的Model。
在MVP模式中Activity的功能就是响应生命周期和显示界面,具体其余的工做都丢到了Presenter层中进行完成,Presenter实际上是Model层和View层的桥梁。
项目地址:https://github.com/androidsta...
服务端测试项目地址:
http://download.csdn.net/down...
参考连接:
遗留问题:
总结:过多的追求模式有时候也会拔苗助长,MVC应用有时候也有太多的宽泛。
MVP+Dagger2+Retrofit2.0+Rxjava看这一个例子就够了
若是您以为颇有帮助,欢迎随时撩我。