烦了在Activity中编写太多的代码,该app由我来主导。就选择用MVP模式。
概述
MVP是模型(Model)、视图(View)、主持人(Presenter)的缩写,分别代表项目中3个不同的模块。
模型(Model)
负责处理数据的加载或者存储,比如从网络或本地数据库获取数据等;
视图(View)
负责界面数据的展示,与用户进行交互;
主持人(Presenter)
相当于协调者,是模型与视图之间的桥梁,将模型与视图分离开来。
如上图所示,View与Model并不直接交互,而是使用Presenter作为View与Model之间的桥梁。
其中Presenter中同时持有Viwe层以及Model层的Interface的引用,而View层持有Presenter层Interface的引用。
当View层某个界面需要展示某些数据的时候,首先会调用Presenter层的某个接口,然后Presenter层会调用Model层
请求数据,当Model层数据加载成功之后会调用Presenter层的回调方法通知Presenter层数据加载完毕,
最后Presenter层再调用View层的接口将加载后的数据展示给用户。这就是MVP模式的整个核心过程。
结合demo的示意图
图片放大看
这样分层的好处就是大大减少了Model与View层之间的耦合度。一方面可以使得View层和Model层单独开发与测试,互不依赖。另一方面Model层可以封装复用,可以极大的减少代码量。
技巧
先确定Presenter类的方法,再推出view和model的方法。
步骤:
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