MVP模式实现登录功能

来源:互联网 发布:淘宝助理导出csv文件 编辑:程序博客网 时间:2024/05/03 16:09
MVP模式实现登录功能

这篇文章主要对鸿洋的老师的关于mvp分析文章进行总结与自我理解,通过实现登录功能来加深理解。
如需看代码,请看:http://blog.csdn.net/lmj623565791/article/details/46596109
界面效果如下:


一,定义:
MVP所对应的意义:M-Model-模型、V-View-视图、P-Presenter-表示器。
Presenter在MVP中都起着逻辑控制处理的角色,起着控制各业务流程的作用。
    View  对应于Activity,负责View的绘制以及与用户交互
    Model  依然是业务逻辑和实体模型
    Presenter  负责完成View于Model间的交互

二,MVP 与 MVC 区别:
如图:



MVP与MVC最不同的一点是M与V是不直接关联的也是就Model与View不存在直接关系,这两者之间间隔着的是Presenter层,其负责调控View与Model之间的间接交互。

MVC中是允许Model和View进行交互的,而MVP中很明显,Model与View之间的交互由Presenter完成。还有一点就是Presenter与View之间的交互是通过接口的(代码中会体现)。

三,好处:
1,减少了Activity的职责,简化了Activity中的代码,将复杂的逻辑代码提取到了Presenter中进行处理。

2,在Android中很重要的一点就是对UI的操作基本上需要异步进行也就是在MainThread中才能操作UI,所以对View
与Model的切断分离是合理的。此外Presenter与View、Model的交互使用接口定义交互操作可以进一步达到松耦合也
可以通过接口更加方便地进行单元测试。


四:大致流程:
登录Activity做了一些UI初始化的东西并需要实例化对应UserLoginPresenter和实现IUserLoginView的接口,监听界面动作,
点击登录按钮后即接收到登录的事件,在onClick里接收到即通过UserLoginPresenter的引用把它交给UserLoginPresenter处理。

UserLoginPresenter接收到了登录的逻辑就调用登录方法login()了,然后把登录逻辑的具体业务实现交给UserBiz去实现调用login()方法,同时把OnLoginListener传给UserBiz。

UserBiz进行登录逻辑后即把结果通过OnLoginListener回调通知WeatherPresenter,WeatherPresenter再把结果返

回给View层的Activity,最后Activity显示结果。
具体代码地址应引用:

五,类图结构:


六,时序图结构:



总结:
presenter完成model 和view二者的交互,那么肯定需要二者的实现类,把view和model作为presenter的成员变量,通过构造函数传递过去。
大致就是在presenter中从View中获取需要的参数,交给Model去执行业务方法,执行的过程中需要的反馈,以及结果,再让View进行做对应的显示,实际上presenter在这里起到了控制器的作用。


参考资料:
powerdesigner画时序图:
http://www.cnblogs.com/ywqu/archive/2009/12/22/1629426.html


鸿洋老师文章地址:
http://blog.csdn.net/lmj623565791/article/details/46596109

至此,基本功能分析完毕,如有疑问欢迎留言或加群讨论:196615382,如需源码,点击下载。。。


1 0
原创粉丝点击