【HarmonyOS】鸿蒙应用架构原则参考

【HarmonyOS】鸿蒙应用架构原则参考

一、何为架构

务必要能允许应用扩缩、提升应用的稳健性并且方便对应用进行测试。
应用架构定义了应用的各个部分之间的界限以及每个部分应承担的职责。

二、架构原则

1.分离关注点
一种常见的错误是在一个UI类中编写所有代码。这些基于界面的类应仅包含处理界面和操作系统交互的逻辑。
UI类是 操作系统与应用之间关系的粘合类。操作系统可能会根据用户互动或因内存不足等系统条件随时销毁它们。为了提供令人满意的用户体验和更易于管理的应用维护体验,最好尽量减少对它们的依赖。

2.通过数据模型驱动界面
重要原则是您应该通过数据模型驱动界面(最好是持久性模型)。数据模型代表应用的数据。它们独立于应用中的界面元素和其他组件。这意味着它们与界面和应用组件的生命周期没有关联,但仍会在操作系统决定从内存中移除应用的进程时被销毁。
持久性模型是理想之选,原因如下:

(1)如果操作系统销毁应用以释放资源,用户不会丢失数据。

(2)当网络连接不稳定或不可用时,应用会继续工作。

3.单一数据源
在应用中定义新数据类型时,您应为其分配单一数据源 (SSOT)。SSOT 是该数据的所有者,而且只有此 SSOT 可以修改或转变该数据。
此模式具有多种优势:
将对特定类型数据的所有更改集中到一处。
保护数据,防止其他类型篡改此数据。
更易于跟踪对数据的更改。因此,更容易发现 bug。

单一事实来源(SSOT)是数据管理中的基本概念,它指的是特定信息的单一、权威、可靠的数据源。这意味着应该只有一个地方存储、更新和维护特定的数据项。提高数据准确性。

4.单向数据流
单向数据流 (UDF) 模式一起使用。在 UDF 中,状态仅朝一个方向流动。修改数据的事件朝相反方向流动。

三、架构设计

界面层 - 在屏幕上显示应用数据。
网域层 - 以简化和重复使用界面层与数据层之间的交互。
数据层 - 包含应用的业务逻辑并公开应用数据。

UILayer界面层

界面层(或呈现层)的作用是在屏幕上显示应用数据。每当数据发生变化时,无论是因为用户互动(例如按了某个按钮),还是因为外部输入(例如网络响应),界面都应随之更新,以反映这些变化。xxxPage,xxxView
用于在屏幕上显示应用数据,并充当主要的用户互动点。

Domain Layer(Optional)网域层

网域层是位于界面与数据层之间的可选层。
网域层负责封装复杂的业务逻辑,或者由多个重复使用的简单业务逻辑。此层是可选的,因为并非所有应用都有这类需求。请仅在需要时使用该层,例如处理复杂逻辑或支持可重用性。
此层中的类通常称为“用例”或“交互方”。每个用例都应仅负责单个功能。

Data Layer数据层

应用的数据层包含业务逻辑。业务逻辑决定应用的价值,它包含决定应用如何创建、存储和更改数据的规则。

数据层由多个存储库组成,其中每个存储库都可以包含零到多个数据源。您应该为应用中处理的每种不同类型的数据分别创建一个存储库类。xxxRepository。
用于向应用的其余部分公开应用数据,并且包含应用的绝大部分业务逻辑。

存储库类负责以下任务:
向应用的其余部分公开数据。
集中处理数据变化。
解决多个数据源之间的冲突。
对应用其余部分的数据源进行抽象化处理。
包含业务逻辑。

每个数据源类应仅负责处理一个数据源,数据源可以是文件、网络来源或本地数据库。数据源类是应用与数据操作系统之间的桥梁。

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值