Android架构进化之mvc-mvp-mvvm

一.为什么要引入架构设计?

   我们的项目为什么要引入架构设计?架构设计的目的是使你的项目模块化,实现模块内部高聚合、模块之间低耦合,这样做的好处是在协同开发中,每个开发人员可以更专注的开发某一点,提高开发效率,并且项目结构清晰、可维护性高。

 

二.Android架构演变

   Android的发展中,不同时期流行的架构演变主要是从MVC到MVP到MVVM,这里我们就来介绍下三个项目架构。

 

三.MVC设计架构

  MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,MVC是软件设计架构的典范,不仅用在Android中,在前端、后端开发中都被广泛使用。

  MVC架构模式将业务逻辑、数据、界面进行分离,其中M层处理数据,V层处理界面,C层控制M层和V层的通信,以此来实现界面和业务的分离。

  在Android中MVC的使用表现为:V层主要是xml布局文件以及其他的自定义view文件,M层主要是处理业务逻辑的类,C层主要在Activity或Fragment中,如下:

 

MVC模式将数据和界面分离,是项目更加清晰,但是MVC中的Controller层不仅要处理view跟model的交互事项,还需要处理很多view与用户之前的交互,随着项目的不断增大Controller层就会变得越来越臃肿,就增加了测试和维护的难度。因此就进化出来MVP架构。

 

四.MVP架构设计

   MVP 是Mode、View、Persenter的简称,MVP中Mode负责数据、View负责界面、Persenter负责处理view和model之间的交互,在Android中由于MVC中把交互工作都放在controller中执行,也就是放在Activity中,使Activity变得臃肿,因此MVP实现了进化,在MVP中xml/Activity/Fragment都为View层,Persenter用来处理业务逻辑,Persenter与Model和View进行交互,是的View和Model耦合度降低,Activity工作得到了简化,项目中大致事情如下(具体怎么使用根据项目需求来):

 

MVP中业务逻辑放在p层中处理,越来越复杂的业务逻辑还是会使P层变得臃肿。

 

五.MVVM架构设计

MVVM是MVP的升级版,其中的VM是ViewModel的缩写,Model负责数据实体,View复杂界面对应xml和activity,ViewModel可以理解成是View的数据模型和Presenter的合体,负责Model和View之间的交互,处理业务逻辑,ViewModel和View层之间的交互通过谷歌

的框架data-binding来完成,而Data Binding可以实现双向的交互,这就使得视图和控制层之间的耦合程度进一步降低,关注点分离更为彻底,同时减轻了Activity的压力。

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值