直接跳到内容

项目架构与职责

介绍

本节说明 HarmonyKit 的整体架构与模块职责,重点解释 core 内各模块承担的功能边界,帮助你在开发时保持依赖收敛与职责清晰。

架构目标

  • 职责清晰:基础能力与业务模块分层,降低耦合。
  • 依赖收敛:业务模块只通过统一入口访问数据能力。
  • 可维护:模块关系稳定,便于替换与扩展。

模块职责概览

  • entry:应用入口与启动流程,负责初始化与路由入口,不承载业务逻辑。
  • core:基础能力层,承载共用能力与规范,包含导航等基础模块。
  • feature:业务模块层,按业务域拆分页面与 ViewModel。

架构图

架构图来自华为官方文档:分层架构设计

core 模块职责

  • base:基础父类与基础能力封装(如通用页面/状态基类等)。
  • data:统一数据入口,封装仓库层,聚合网络、数据库与本地存储。
  • database:本地数据库能力与持久化访问。
  • datastore:轻量级本地存储与配置持久化。
  • designsystem:设计系统与全局样式规范(颜色、间距、字体等)。
  • ibestui:IBest UI 组件库的封装与适配层。
  • model:数据模型与实体定义。
  • navigation:导航能力与路由基础设施(位于 core 下,与业务分离,文档单独成章)。
  • network:网络请求基础能力与拦截器等封装。
  • result:统一结果封装与错误处理规范。
  • state:全局状态管理与状态持久化支持。
  • ui:通用 UI 组件与复用视图封装。
  • util:工具类与通用辅助方法。

依赖关系与边界

  • feature 依赖 core:业务模块可使用 core 的基础能力。
  • feature 不直接依赖 network / database:业务模块通过 data 模块内的仓库作为统一数据入口。
  • data 聚合底层能力data 负责整合 networkdatabasedatastoremodel,对外提供统一的数据访问方式。
  • 模块间不互相依赖:feature 之间保持隔离,避免交叉依赖。

模块依赖图

模块依赖图

数据访问路径示例

  • 业务模块调用 data 提供的仓库方法。
  • 仓库内部按需访问网络、数据库或本地存储。
  • 结果通过统一封装返回给业务层。

设计约束

  • core 层只做通用能力,不掺杂业务逻辑。
  • feature 层只做业务,不直接调用网络/数据库。
  • navigation 属于 core,单独成章便于集中维护。