DDU框架学习之路

目录

MVVM对比

DDU

数据消费者UI

数据的转换者:Domain Layer

数据图生产者/提供者 DataLayer

遵循原理:

单一数据流:


Android官方推荐架构:DDU

image.png

MVVM对比

M:Model 网络层 用于获取远端数据

VM:ViewModel 中间转换层 获取网络层数据进行转换成UI可以直接使用的数据

V:VM提供数据,V负责展示,VM中通过提供可被观察的数据流(Flow或者LiveData)来实现V层被动更新,不需要手动调用VM获取数据

DDU

数据消费者UI

UI layer,对应于MVVM的V层用于展示数据

UIElements:界面元素  通过View/Compose实现的界面树

UIState:界面数据状态  通过包装界面控件属性值来驱动UI改变

image.png

数据的转换者: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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/128364.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Win10共享打印机,别人连接不上出现无法连接到打印机错误码0x0000011b

环境: Win10 专业版 惠普L1119 问题描述: Win10共享打印机,别人连接不上出现无法连接到打印机错误码0x0000011b 解决方案: 1.打开我这台电脑的注册表找到 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Print在右侧…

Sentinel网关限流

背景 在微服务架构下,每个服务的性能都不同,为避免出现流量洪峰将服务冲垮,需要依赖限流工具来保护服务的稳定性。sentinel是阿里提供的限流工具,社区活跃,功能也很全面,包含实时监控、流控、熔断等功能。…

网络安全——

文章目录 网络安全TCP/IP与网络安全网络安全构成要素加密技术基础 网络安全 TCP/IP与网络安全 起初,TCP/IP只用于一个相对封闭的环境,之后才发展为并无太多限制、可以从远程访问更多资源的形式。因此,“安全”这个概念并没有引起人们太多的…

MySQL 8.0 如何修改密码安全策略!!!

目录 安全策略参数和常见等级:1.Mysql8.X常见安全策略参数指定密码的强度验证等级validate_password.policy 取值: 解决步骤1.登录mysql2.修改安全策略(1)语法如下:(2)修改完可以看一下: 3.改完密码策略,就可以根据自己修改的策略&#xff0c…

双十一“静悄悄”?VR购物拉满沉浸式购物体验

以往每年的双十一,都会因为电商购物狂欢而变得热闹非凡,而各大电商平台也会在这天推出各种促销活动。但是,近几年来,双十一正在变得“静悄悄”。一个原因是消费群体越发理性消费,更加重视商品本身的质量和体验&#xf…

跨境电商商城源码,支持多语言,开启全球贸易新篇章!

随着全球化的不断深入,跨境电商已经成为越来越多企业的选择。我们为您提供的跨境电商源码产品,具有强大的多语言支持功能,可轻松扩展至多个语言,助您迅速占领全球市场,实现业务的国际化发展。 一、多语言支持&#xff…

二十五、W5100S/W5500+RP2040树莓派Pico<Modebus TCP Server示例>

文章目录 1 前言2 简介2 .1 什么是Modbus TCP?2.2 Modbus TCP指令介绍2.3 请求数据过程2.4 Modbus TCP协议优点2.5 Modbus TCP应用场景 3 WIZnet以太网芯片4 Modbus TCP示例概述以及使用4.1 流程图4.2 准备工作核心4.3 连接方式4.4 主要代码概述4.5 结果演示 5 注意…

FindMy网络帮助您找到电动车

随着科技的发展,我们的生活变得越来越智能化。而现在,这项技术已经深入到了我们的出行方式中。如果你是一位电动车主,那么你可能会遇到一个常见的问题:忘记你的电动车停在了哪里。这种情况在日常生活中时有发生,而现在…

[极客大挑战 2019]Http1

打开题目 没有发现什么,我们查看源代码 在这里我们发现了提示 访问一下页面得到 提示说不能来自于https://Sycsecret.buuoj.cn,我们尝试访问一下这个url 发现访问不了 我们bp抓包一下 伪造个referer头 referer:https://Sycsecret.buuoj.cn 发包过去…

剪贴板劫持--PasteJacker的安装

从 GitHub 库克隆PasteJacker git clone https://github.com/D4Vinci/PasteJacker 安装PasteJacker python3 -m pip install ./PasteJacker 如果遇到报错,在结尾追加 --break-system-packages python3 -m pip install ./PasteJacker --break-system-packages 尝…

Zabbix深入解析与实战

1.Zabbix 1.1.监控概述 监控是指对行为、活动或其他变动中信息的一种持续性关注,通常是为了对人达成影响、管理、指导或保护的目的 监控 监视主机架构状态控制,事后追责目标:早发现早处理(故障、性能、架构) 网站扩容(用数据说话) 为什么要…

腾讯云优惠券是什么?详细介绍及领取攻略来了!

1、腾讯云优惠券介绍 腾讯云优惠券是腾讯云推出的一种优惠活动,包括代金券和折扣券。代金券是可抵扣费用的优惠券,可以在结算时使用代金券抵扣订单金额。折扣券可以在结算时使用享受一定的折扣优惠。 2、腾讯云优惠券领取 领取入口:txy.in…

【Qt-23】ui界面设计-ToolBar

1、ToolBar 右击主窗体添加工具栏 新建动作,可设置图标,图标有本地文件和资源两种方式。 修改toolButtonStyle的属性,可设置图标与汉字显示的方式。 页面跳转: connect(ui->action, SIGNAL(triggered()), this, SLOT(openWid…

IDEA运行前端vue项目,安装nodejs,以及配置

我在刚接手到一个项目的时候,不知道前端的代码的情况下,想要写后端代码,遇到问题 所以需要看前台代码,着手IDEA 开始 安装nodejs (为什么要安装nodejs呢,首先就是说需要npm, 而nodejs 内置npm) 1.从官网下载 nodej…

10道高频React面试题快问快答

※其他的快问快答,看这里! 10道高频Qiankun微前端面试题快问快答 10道高频webpack面试题快问快答 20道高频CSS面试题快问快答 20道高频JavaScript面试题快问快答 30道高频Vue面试题快问快答 面试中的快问快答 快问快答的情景在面试中非常常见。 在面试…

Python批量导入及导出项目中所安装的类库包到.txt文件(补充)

Python批量导入及导出项目中所安装的类库包到.txt文件 生成requirements文件 建议使用,该方式形成文档最简洁: pip list --formatfreeze > requirements.txt

pytorch优化器详解

1 什么是优化器 1.1 优化器介绍 在PyTorch中,优化器(Optimizer)是用于更新神经网络参数的工具。它根据计算得到的损失函数的梯度来调整模型的参数,以最小化损失函数并改善模型的性能。 即优化器是一种特定的机器学习算法&#…

数字滤波器分析---相位响应

数字滤波器分析---相位响应 MATLAB 函数可用于提取滤波器的相位响应。在给定频率响应的情况下,函数 abs 返回幅值,angle 返回以弧度为单位的相位角。要使用 fvtool 查看巴特沃斯滤波器的幅值和相位,请使用: d designfilt(lowpa…

切换闭锁元件 双位置继电器 TST-AB440GT DC24V 导轨安装

TST440AB-GT双位置继电器用于交直流操作的各种保护和自动控制的装置中,作为切换闭锁元件。 系列型号: DSP2-4A重动继电器;DSP2-2A2B重动继电器; DSP2-3A1B重动继电器;TST440GT双母线切换继电器; TST220GT双…

Docker修改容器内部文件的三种方法

为啥要记录呀 今天在修改Docker内部文件的时候,安装vim居然失败了,在执行apt-get update时一直有几个404,解决无果,最后放弃安装vim,将文件拷贝出来修改,然后再拷贝到docker内部。记录一下如何修改Docker内…