Jetpack——DataBinding源码解析

【问】哪个架构模式最好?
【答】永远没有哪个模式好,只有哪个模式最适合。

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

思考架构:

  1. DataBinding应用场景
  2. DataBinding使用篇
  3. DataBinding综合应用实战篇
  4. DataBinding源码了解篇
  5. ViewModel是什么?
  6. DataBinding,LiveData,ViewModel 等 系列使用篇
  7. ViewModel的源码了解
ViewModel有什么用?

用户填完1~300个字段,横竖屏切换Activity被重建,数据丢失
可以用ViewModel解决,只要Activity没有Destroy数据就不会丢
ViewModel保证数据的稳定性,依赖于Lifecycle监听状态

未来安卓原生开发模式:

Google标准化架构模式【Google推荐】
MVVM+Jetpack全家桶,官网也给了示意图

常用的应当掌握的组件库:

能写一个App和能写一个优秀的App其实是两码事,技术一定要通透。

  • Lifecycle
  • ViewModel
  • LiveData
  • DataBinding
  • Room
  • Navigation
  • WorkManager
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小山研磨代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值