urlname
type
Post
password
SyncToConfluence
category
业务技能
date
Jul 9, 2025
slug
b2b22205-9fef-4e5b-833e-6e28313ce035
icon
Button
catalog
summary
tags
代码重构
Architecture
cover
Status
BusyTime
Status 1
status
Published
良好架构设计的必要性
As Android apps grow in size, it's important to define an architecture that allows the app to scale, increases the app's robustness, and makes the app easier to test.
- 良好的架构有助于应用扩展、提升鲁棒性并简化测试
架构设计的核心原则
- 关注点分离(Separation of Concerns)
- 数据驱动(Drive UI from Data Models)
- 单一数据源(Single Source of Truth, SSOT)
- 单向数据流(Unidirectional Data Flow, UDF)
关注点分离
- 避免将所有代码都写在Activity或Fragment中。
- UI相关的类应仅包含处理UI交互的逻辑,保持精简。
- 业务逻辑应该在业务层做处理,各自关心所在层的内容。
数据驱动
- UI应由数据驱动,最好是持久化数据。
- 数据模型独立于UI元素和应用组件生命周期。
- 持久化模型能确保在OS终止应用时数据不丢失,并在网络不稳定或无网络时应用仍能工作。
- 基于数据模型构建架构能提升应用的可测试性和鲁棒性。
单一数据源
- 每个新的数据类型都应指定一个SSOT。
- SSOT是该数据的所有者,只有它能修改数据,并通过不可变类型暴露数据,通过函数/事件供其他类型调用修改。
- 优点:集中化数据变更、保护数据、追踪变更、更容易发现bug。
- 在离线优先应用中,数据库通常是应用数据的SSOT
单向数据流
- 每个应用至少应包含两个层:UI层(显示应用数据)和数据层(包含业务逻辑并暴露应用数据)。
- 可以增加一个可选的领域层来简化和重用UI和数据层之间的交互。
- 现代应用架构鼓励采用响应式和分层架构、在所有层中使用UDF、UI层使用状态持有者管理UI复杂度、使用协程和Flow以及依赖注入最佳实践。


资料
- Author:CoderWdd
- URL:https://www.wuinsights.top//article/b2b22205-9fef-4e5b-833e-6e28313ce035
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!
Relate Posts

