App通用架构设计

App通用架构设计

App架构设计的目的

  • 应对App功能庞大,复杂度快速上升的趋势,降低App软件开发的复杂度
  • 提升代码的可复用性
  • 实现模块化,组件化开发
  • 规范App开发流程, 对开发工作进行指引

App架构的基本原则

  • 分层
  • 模块化
  • 组件化
  • 解耦

App通用架构图

  • 基础组件层
  • 通用业务组件层
  • 业务层
  • App壳
App通用架构.png

基础组件层

  • 每个模块功能单一
  • 不包含业务逻辑
  • 模块互相独立,没有依赖关系
  • 组件化,模块化良好,代码可复用程序高

OkHttp EventBus Encrypt/Decrypt JSBridge Logger ...

通用业务组件层

  • 对基础组件模块的封装
  • 通用的业务逻辑下沉
  • 通用的App UI相关组件
  • 依赖基础组件层

业务层

  • 根据业务及功能,划分多个相对独立业务模块
  • 业务模块之间,减少互相依赖
  • 业务模块互相调用,通过Router组件解耦
  • MVC/MVP/MVVM

消息中心 订单系统 登录/注册 用户中心 ...

App壳

  • App入口,主界面,首屏
  • App整体功能输出配置,构建
  • ToB形态App的功能自定义组合,UI风格自定义等需求

层级、模块之间依赖、解耦

  • 依赖关系

    • 上层依赖下层
    • 减少横向依赖
  • 下层模块与上层模块通信方式

    • callback
    • eventbus
  • 业务层模块之间,通过Router组件解耦

MVP架构

基本结构

  • model 数据实体,数据处理层,包括本地,网络数据的获取、处理、传输、存储
  • view UI层,主要完成数据的UI显示、用户交互、事件转发
  • presenter 业务逻辑的具体实现,view与model交互的桥梁
mvp.png

优点

  • 一个功能拆分为M、V、P 3部分,M、V进行了解耦
  • 组件之间交互,都是通过接口实现
  • UI与逻辑分离,可方便进行代码单元测试
  • 结构简单,学习成本低

代码结构

  • 基础组件库模块
  • 通用业务组件库模块
  • 每个业务模块对应一个模块,N个业务模块
  • App壳模块

App架构展望

  • 基于模块化的事件总线框架
  • 组件服务化
  • 插件化

你可能感兴趣的:(App通用架构设计)