课程名称:BAT大牛亲授技能+技巧 Android面试快速充电升级
课程章节:Android基础相关面试问题
主讲老师:DocMike
课程内容
MVC 架构模式
MVC 架构模式的主要目的是为了实现视图和数据的分离。MVC 的特点是耦合性低,可扩展性好,模块职责划分明确。这对于大型开发项目来说,方便进行模块划分。MVC 在 Android 中的定义:
- M,业务逻辑处理;
- V,处理数据显示的部分;
- C,Activity 处理用户交互问题。
在 MVC 种,View 和 Model 之间是可以直接交互的,这样体现在代码中就会导致 View 和 Model 的耦合性提高。
在 Android 中如果把对数据库文件、磁盘缓存文件、网络文件的处理看作 M 层,页面的布局 xml 和 Activity 中的控件看作 V 层,Activity 还扮演 Controller 的角色,这样的结果就是 Activity 中的业务逻辑会比较重,这也是 MVC 模式在 Android 中的局限性。
MVP 架构模式
MVP 架构模式是 MVC 架构模式的演化版本,针对 MVC 模式在 Android 中的局限性,即 Activity 同时扮演着 V 和 C 的角色,违背了软件设计的单一职责原则。随着项目的进一步发展,Activity 中的逻辑会越来越复杂,代码也会越来越臃肿,维护的成本也会升高。MVP 在 Android 中的定义:
- M,依然是业务逻辑和实体模型;
- V,对应 Activity,负责完成 View 的绘制以及与用户的交互;
- P,负责完成 View 与 Model 之间的交互;
MVP 模式将 MVC 中 Activity 扮演的 Controller 的角色放在 P 层来完成,将 V 层和 M 层进行了隔离,P 层负责完成 V 层和 M 层的交互。MVP 模式的执行流程归纳起来可以总结为:
- V 层收到用户的操作;
- V 层把用户的操作交给 P层;
- P 层直接操作 M层进行业务逻辑处理;
- M 层处理完毕后,通知 P 层;
- P 层收到通知后,去更新 V层;
在 Android 中,MVP 实现了对 Activity 的解耦,将模型和视图完全分离,实际项目中视图的更新频率要高于模型,使用 MVP,可以很方便的修改视图而不会影响模型。
MVVM 架构模式
MVVM 模式在 MVP 的基础上,进一步降低耦合,ViewModel 层不在持有 View 层的引用,当 View 层发生改变时,只要 View 层绑定的数据不变,那么 ViewModel 层就不需要改变。体现在代码中,Activity 的代码可以做到非常简洁。MVVM 在 Android 中的定义:
- V,对应 Activity 和 xml,负责 View 的绘制以及与用户的交互;
- M,实体模型;
- VM,负责完成 View 和 Model 间的交互,负责业务逻辑。
MVVM 是 Google 官方推荐使用的框架,结构清晰,职责明确,真正做到了模块间充分解耦,数据处理逻辑都是独立于 UI 层,ViewModel 只负责提供数据和处理数据,不会持有 View 层的引用;View 层只负责对数据变化的监听,不会处理任何跟数据相关的业务。View 层的 UI 发生变化时,也不需要像 MVP 模式那样修改对应接口和方法实现。
课程收获
平时将精力更多的是放在业务需求的实现上,这一章对 Android 中常提到的三种框架做了详细的介绍,通过对比体现各自的特点,怎样将各个框架的优点应用到自己的业务上,怎样让框架更好的为自己服务,是需要开发人员去思考的问题。不能陷入为了框架而过渡设计,只有合适的才是最好的。
共同学习,写下你的评论
评论加载中...
作者其他优质文章