【问】哪个架构模式最好?
【答】永远没有哪个模式好,只有哪个模式最适合。
1、MVC
- MVC盛行于2011年左右,由当时工程目录结构决定的
- Activity 表面是控制层,其实是个大管家,且管理混乱
- 角色划分不清,View、模型和控制的工作都做,
- 代码多,没有单一职责,耦合度和扩展性都不好
- 适用:小型项目(1-2人),够灵活
2、MVP
- Activity 只做View层,分层清晰
- Presenter 层通过接口回调实现反馈给View
- 弊端:出现接口过多,“接口地狱”
- 适用:大型项目,业务重,开发人员多,必须分层清晰
3、MVVM
- Activity 只负责View层
- 这个ViewModel,指的是VM层,与Jetpack的ViewModel组件库不是同一个东西
- 通过DataBinding完成View与VM的双向绑定
- DataBinding不属于哪个模式,只是个工具集,MVP也可以用
- 通常为:DataBinding+ViewModel+LiveData
- 适用:界面更新频繁(网易云音乐、腾讯视频),“数据驱动开发”
Databinding技术分析
项目引入:
// gradle闭包
dataBinding {
enabled true
}
// 另一种方式
dataBinding.enabled=true
思考架构:
- DataBinding应用场景
- DataBinding使用篇
- DataBinding综合应用实战篇
- DataBinding源码了解篇
- ViewModel是什么?
- DataBinding,LiveData,ViewModel 等 系列使用篇
- ViewModel的源码了解
ViewModel有什么用?
用户填完1~300个字段,横竖屏切换Activity被重建,数据丢失
可以用ViewModel解决,只要Activity没有Destroy数据就不会丢
ViewModel保证数据的稳定性,依赖于Lifecycle监听状态
未来安卓原生开发模式:
Google标准化架构模式【Google推荐】
MVVM+Jetpack全家桶,官网也给了示意图:
常用的应当掌握的组件库:
能写一个App和能写一个优秀的App其实是两码事,技术一定要通透。
- Lifecycle
- ViewModel
- LiveData
- DataBinding
- Room
- Navigation
- WorkManager