MVP模式

一、背景

        相信大家对于mvc这种开发模式都不陌生,无论是java开发,php还是Android都很常用,后来针对于Android网上又出来了一种mvp模式,这又是什么鬼?都知道mvp是从mvc进化来的,而且让model和view解耦,具体他是怎么做的还是值得去研究一下的,下面说一说自己对于mvp模式的理解

二、比较

     什么是mvc?

       model:实体层,对应的就是我们的数据层和业务逻辑

       view:视图层,对应的是Android中的布局文件

       controler:控制层,可以理解为activity,处理用户交互的

        其实这样诈看起来条例非常清晰,其实做过开发的人都会有这样的感觉,activity在实际开发过程中负责的内容很多,布局的处理和用户的交互等,开起来activity什么都管,而view和model却是特别轻量,有点失去他本来的意义

      再看mvp

        model:还是实体层,与mvc中一样

        view:对应activity,绘制布局与用户交互

        presenter:这一层负责model数据层和view层的交互

        这么看起来也挺清晰的,而且他在实际开发中代码更加的清晰

        下边上图比较一下两者

                    

            从图上可以感觉到mvp确实是做到了model与view的解耦

          mvp具体实现

            1.接口,mvp中每一层都会抽象出接口,然后通过具体的实现类实现具体代码

            2.view层接口IVew的实现类由activity实现,Model层接口IModel由model数据模型实现(做数据的处理,以及一些业务逻辑),Presenter接口,做model与view的交互

            3.Presenter中拿到model的接口及其实现类,拿到view层接口,做完数据处理后通过回调到view的具体实现类activity实现数据的展示,而activity中也会拿到presenter的接口,调用presenter,通过其具体实现类处理model和view接口的逻辑

            这个具体过程没把代码贴出来,只是用语言做了描述,可能看起来会比较费劲,具体代码后续再贴出来

         分析

            整体这么一看每个activity都会对应一个接口,然后对应一个presenter和model,这样项目中会有很多的类,也算之mvp的弊端之一吧,不过这样写的代码结构清晰明了,不管是以后维护或者其他人看代码都会相对轻松,便于代码的管理

三、小结

           对于mvp的理解还不是很到位,毕竟项目中没有真正的用到,只是自己敲了敲例子玩,以后还有待在项目中实际玩玩才会更能理解

           ps:今天微软全球副总裁来我司做交流,听了听他讲的一些未来趋势,感觉很有用,分享给大家

           主要讲了三点:

           1.移动互联网:已经渐渐出现下滑趋势,但是移动互联网对人们产生的影响是全所未有的,而且还给微软带来了很大的冲击

           2.大数据:未来将是大数据的时代,想亚马逊,阿里这种电商掌握着数据,现在毕竟是数据的时代,也可以说在一定程度上掌握着以后,像这种比较大的电商在未来会很有竞争力,这也是他来我司交流学习合作的重要原因之一

           3.人工智能:这也是微软现在着重发展方向,人工智能涉及我们生活的方方面面,不仅仅是现在狭义的智能手机智能家居这些东西,也包括我们平时用的东西,比如说我们用的水杯,书包,笔,桌子等等,在这方面微软现阶段一直主推AR,与我们现在了解比较多的VR还不同,AR是混合虚拟现实,是将真实环境和虚拟结合起来的,而VR是纯虚拟现实,相信微软这方面已经走在了世界的前列。

          预测未来最好的方式就是创造未来

           以上就是交流的大概内容,具体细节就不做描述了,听一听感觉瞬间脑洞大开




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值