MVP举例说明

来源:互联网 发布:测试英语词汇量的软件 编辑:程序博客网 时间:2024/06/06 15:47
平时我们所说的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)其他的妈妈想知道都能知道,)

0 0
原创粉丝点击