您的位置:首页 > 其它

MVP举例说明

2016-05-15 22:43 134 查看
平时我们所说的MVP,就是Mode View Presenter

Mode是业务逻辑层,View是试图层,Presenter是中间者,平时交互的时候,

View和Presenter之间(View能够调用Presenter的方法,Presenter返回只能是通过监听)

Mode和Presenter之间(在Presenter实例化出Mode的对象,调用其中对应的方法,同步方法通过返回值,异步方法通过回调监听)

View和Mode之间(不可交互,框架就是为了减少代码耦合性,应变公司的各种不定性的需求,也是为了你的项目下一个人维护起来

能够看得懂,所以要按照规则来做)

既然理解了MVP,那我们可以看看github上边的MVPro,是轻量级的MVP封装,他将Activity作为Presenter,这个activity必须继承MVPro中的Presenter中对应的类型传入继承ViewImpl的对应试图,

并且MVPro不在乎你的业务逻辑层如何实现,但是我们按照正常的规则,我们要单独写一个Mode,像MVP一样在Presenter中实例化出来,在MVPro中我们就要在Activity中实例化出来

然后监听和业务逻辑的调用就交给了activity也就是Presenter,View的显示交给了继承ViewImpl的实现类来做,现在企业中应该是还没有做这个,多部分都是MVP,所以理解MVP就好

下面举例说明:

1、(今早大家停网了,我去找前台,前台去找袁老师,袁老师告诉下午来给大家整,下午修好了袁老师告诉前台可以用了,前台告诉我能用了,我在通知大家有网了,大家就开始用网了)

在这么一段通俗易懂的话中,我肯看看其中的角色:1、我(View)2、大家(View中的控件)3、前台(Presenter)4、袁老师(Mode)

这样的话我们再来分析一下上面的话

(需要修网(这是需求),View去找Presenter,Presenter去找Mode,Mode告诉下午来给大家整(这是过程),下午修好了(结果)Mode告诉Presenter可以用了,Presenter告诉View能用了,View在通知View的控件有网了,控件就开始用网了)

这样一来,MVP整个流程就懂了。

2、我们在举个例子,就是一个媒婆说媒的过程。M -> 男人 , V -> 女人 , P -> 媒婆。P(媒婆) 要给 M(男人) 介绍个女朋友 V (女人),P 是一个桥梁起着对接的作用, M 和 V 本是不认识的两个人,不能直接沟通。

说媒过程是这样的:P 给 M 说,第一次见女孩子,你要给女孩子准备什么礼物吧?

这个时候,M 肯定不会说,这点小事,你还来麻烦我,自己去买吧,那估计媒婆气都气死了,这事肯定成不了。(写代码的时候,不要让P干M得事)

这事必须 M 自己去做,M 买东西就是处理数据得过程。买东西怎么去买?多少钱?怎么讲价?这都是 M 自己要去干的事。最终结果是 M 买来礼物,礼物就是我们编程过程中 Model所产生的对象。

礼物买来了,M 也不认识 V ,肯定也不知道怎么送给 V,所以这个时候 P 的作用就体现出来了,M 要把 买来的礼物(Object)交给P,让P帮忙送给 V。

就这样,V 拿到礼物,觉得不错,就自己用了。回想一下这个过程:P 发起一个请求,买礼物。M 知道之后,就去执行这件事,最终买来礼物。M 脱 P 把礼物送给V。一个完整的请求数据,展示数据的过程。

3、我们在举一个MVPro的例子,上面说的是媒婆,这回P是女孩的母亲:M -> 男人 , V -> 女人 , P -> 女人的母亲。P(女人的母亲) 要给 M(男人) 介绍给自己的女儿V (女人),P 同样是一个桥梁起着对接的作用, M 和 V 本是不认识的两个人,不能直接沟通。

说媒过程是这样的:P 给 M 说,想喜欢我女儿,得有房子,这个时候,M 会说,行,等我买完了告诉您,M 买房子就是处理数据得过程。买房子怎么去买?多少钱?这都是 M 自己要去干的事。最终结果是 M 买来房子,礼物就是我们编程过程中 Model所产生的对象。

房子买来了,M 也不认识 V ,肯定也不知道怎么送给 V,所以这个时候 P 的作用就体现出来了,M 要把 买来的礼物(Object)交给P,让P帮忙送给 V。

就这样,V 拿到礼物,觉得不错,就自己用了。回想一下这个过程:P 发起一个请求,买房子。M 知道之后,就去执行这件事,最终买来房子。M 脱 P 把房子送给V。一个完整的请求数据,展示数据的过程。

(为什么将P比喻成女儿的母亲呢,因为MVP中的P只能通过接口通知V所以是为人比喻成媒婆,他不知道女人什么事情,女人让她做什么她就做什么,但是在MVPro中,P可以调用任何V不是隐私的方法,也就是女儿的事情除了隐私(private)其他的妈妈想知道都能知道,)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: