MVP模式在Android项目中的使用

时间:2022-12-22 05:32:25


烦了在Activity中编写太多的代码,该app由我来主导。就选择用MVP模式。

概述

MVP是模型(Model)、视图(View)、主持人(Presenter)的缩写,分别代表项目中3个不同的模块。

模型(Model)

负责处理数据的加载或者存储,比如从网络或本地数据库获取数据等;

视图(View)

负责界面数据的展示,与用户进行交互;

主持人(Presenter)

相当于协调者,是模型与视图之间的桥梁,将模型与视图分离开来。

MVP模式在Android项目中的使用



  如上图所示,View与Model并不直接交互,而是使用Presenter作为View与Model之间的桥梁。

其中Presenter中同时持有Viwe层以及Model层的Interface的引用,而View层持有Presenter层Interface的引用。

当View层某个界面需要展示某些数据的时候,首先会调用Presenter层的某个接口,然后Presenter层会调用Model层

请求数据,当Model层数据加载成功之后会调用Presenter层的回调方法通知Presenter层数据加载完毕,

最后Presenter层再调用View层的接口将加载后的数据展示给用户。这就是MVP模式的整个核心过程。


结合demo的示意图


图片放大看

MVP模式在Android项目中的使用


这样分层的好处就是大大减少了Model与View层之间的耦合度。一方面可以使得View层和Model层单独开发与测试,互不依赖。另一方面Model层可以封装复用,可以极大的减少代码量。


技巧


先确定Presenter类的方法,再推出view和model的方法。
MVP模式在Android项目中的使用

步骤:
1、从页面功能按钮分析得出: a)登录功能。b)清除功能。 2、Presenter类就有了  login() 和 clear() 方法。 3、login()需要用户名和密码。则IView接口有了 a)getUserName() b)getpawd() c)showprocess() 显示进度条 d)显示登录结果,等等的方法
依次类推,把IView和IMode的方法推出来。



demo地址:http://pan.baidu.com/s/1bpl8iE7


-------------

更多的Java,Angular,Android大数据,J2EE,Python数据库Linux,Java架构师,:

http://www.cnblogs.com/zengmiaogen/p/7083694.html