良好架构设计的必要性
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

