mvp模式已经火很久了,之前也看网上好多人都在讨论这个设计模式,从网上下载过很多demo,可能是基础不到位,挺难理解的。这段时间公司来的新同事,听说他就是使用这种模式开发,一时好奇就跑过去请教了一波,趁热打铁,自己再研究一波,希望有所突破。
百度下来,发现一篇简而易懂的好文,特贴出来https://segmentfault.com/a/1190000003927200。我的demo是一个登陆功能,也是这篇文章里的一个功能,本宝依葫芦画瓢看了下自己照着打了一波,若有所获。
首先来看看mvp的构成:
M:model (数据结构,可以理解成JavaBean)
V:View (UI界面, layout布局等)
P:Presenter (业务逻辑处理接口)
MVP的核心思想:
MVP的好处:
我是第一次使用MVP模仿写demo, 除了发现会创建好多接口,还有逻辑处理很清晰以外,并未发现其他优点,嘿嘿。
MVP的使用:
敲完demo,感觉这张图的表达简直不要太完美。
1、Activity(或者Fragment)需要继承IVew接口, IVew接口是专门处理界面UI变化的,里面有一系列和界面有关的方法;
2、Acitity还需要实例化IPresenter接口,IPresenter接口专门处理业务逻辑,里面有一系列和业务逻辑相关的方法;
3、PresenterCompl类继承IPresenter接口, 包含IVew接口,这个类实现IPresenter接口的具体方法,并传入IView里对应的方法来通知Activity。
4、Model并不是必须有的,但是一定会有View和Presenter。
代码上传到github上了,在mvpdemo里面:https://github.com/jjjSilence/jjjPlus/tree/master/mvpdemo