想学架构吗?我教你呀!一文全解MVX三种架构模式!(内附万字学习笔记与项目实战)

前言

作为Android最常用的架构,MVC、MVP与MVVM这三个架构已经是很成熟了,即使现在还有模块化与插件化等方式的架构,MVP与MVVM依然是开发者常采纳的方案。所以无论你是想进阶成为一名高级工程师,还是跳槽大厂进行面试的时候,那么MVC/MVP/MVVM三个架构的熟练掌握与使用一定是必备条件之一。

那么接下来接给大家来分享一下MVC/MVP/MVVM之间的相互联系与优劣势分析,以及还有一些大厂常问的关于MVC/MVP/MVVM面试题。希望在大家架构学习之路上给予一些帮助。另外的文末的话我也会给大家分享一套MVC/MVP/MVVM具体学习使用手册,其中还包含微信、美团、抖音等大厂应用架构实战演进深度剖析和Jetpack其它各大组件学习笔记。

MVC

MVC全名是Model–View–Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。其中Model层处理数据,业务逻辑等;View层处理界面的显示结果;Controller层起到桥梁的作用,来控制View层和Model层通信以此来达到分离视图显示和业务逻辑层。

我们往往把Android中界面部分的实现也理解为采用了MVC框架,常常把Activity理解为MVC模式中的Controller。

看似没有什么特别的地方,但是由几个需要特别关注的关键点:

  1. View是把控制权交移给Controller,自己不执行业务逻辑。

  2. Controller执行业务逻辑并且操作Model,但不会直接操作View,可以说它是对View无知的。

  3. View和Model的同步消息是通过观察者模式进行,而同步操作是由View自己请求Model的数据然后对视图进行更新。

MVC的优缺点

优点:

1. 把业务逻辑全部分离到Controller中,模块化程度高。 当业务逻辑变更的时候,不需要变更View和Model,只需要Controller  换成另外一个Controller就行了(Swappable Controller)。

2. 观察者模式可以做到多视图同时更新。

缺点:
  1. Controller测试困难。因为视图同步操作是由View自己执行,而View只能在有UI的环境下运行。在没有UI环境下对Controller进行单元测试的时候, Controller业务逻辑的正确性是无法验证的:Controller更新Model的时候,无法对View的更新操作进行断言。

  2. View无法组件化。View是强依赖特定的Model的,如果需要把这个View抽出来作为一个另外一个应用程序可复用的组件就困难了。因为不同程序的的Domain Model是不一样

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值