网站多国语言设计,推荐做pc端网站,wordpress文章自定义类型分页,jae wordpress目录
MVVM对比
DDU
数据消费者UI
数据的转换者#xff1a;Domain Layer
数据图生产者/提供者 DataLayer
遵循原理#xff1a;
单一数据流#xff1a; Android官方推荐架构#xff1a;DDU MVVM对比
M#xff1a;Model 网络层 用于获取远端数据
VM:ViewModel 中间转…目录
MVVM对比
DDU
数据消费者UI
数据的转换者Domain Layer
数据图生产者/提供者 DataLayer
遵循原理
单一数据流 Android官方推荐架构DDU MVVM对比
MModel 网络层 用于获取远端数据
VM:ViewModel 中间转换层 获取网络层数据进行转换成UI可以直接使用的数据
VVM提供数据V负责展示VM中通过提供可被观察的数据流Flow或者LiveData来实现V层被动更新不需要手动调用VM获取数据
DDU
数据消费者UI
UI layer对应于MVVM的V层用于展示数据
UIElements界面元素 通过View/Compose实现的界面树
UIState界面数据状态 通过包装界面控件属性值来驱动UI改变 数据的转换者Domain Layer
用于对数据进行处理转换的用户的不同操作对应不同的逻辑将逻辑封装。
V层下发交互Domain层解析交互操作 并通知Data Layer进行更新本地数据 DomainLayer可以放在VM中 。 涉及到对界面逻辑的操作放在此处但不应该过度关心界面如context涉及到对界面状态的操作时应放在UI层通过包装状态类来降低UI层复杂度
借由ViewModel来实现配置发生变化引起重建的转换 一样也通过LiveData包装可被观察的数据流Domain Layer层可直接改变也可以放到DataLayer中去处理根据业务逻辑选择
数据图生产者/提供者 DataLayer
整合用户需要的备份内存数据操作及请求远端网络数据这两个数据层 DomainLayer层下发数据操作DataLayer做出响应并更新DomainLayer中被观察的数据对象实现UI层的自动渲染。
遵循原理
单一数据流
当数据不仅仅是通过界面交互操作产生的时候数据操作应该下沉到DomainLayer中或者Data层方便测试不和UI层逻辑强绑定测试只需更新一处数据即可响应方便回溯根据使用的被包装容器可对实现不同的数据回溯操作(只需接受最新状态/每个状态都不应该被丢弃)
原文DDU框架学习之路 - 掘金 (juejin.cn)