App通用架构设计
App架构设计的目的
- 应对App功能庞大,复杂度快速上升的趋势,降低App软件开发的复杂度
- 提升代码的可复用性
- 实现模块化,组件化开发
- 规范App开发流程, 对开发工作进行指引
App架构的基本原则
- 分层
- 模块化
- 组件化
- 解耦
App通用架构图
- 基础组件层
- 通用业务组件层
- 业务层
- App壳
基础组件层
- 每个模块功能单一
- 不包含业务逻辑
- 模块互相独立,没有依赖关系
- 组件化,模块化良好,代码可复用程序高
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交互的桥梁
优点
- 一个功能拆分为M、V、P 3部分,M、V进行了解耦
- 组件之间交互,都是通过接口实现
- UI与逻辑分离,可方便进行代码单元测试
- 结构简单,学习成本低
代码结构
- 基础组件库模块
- 通用业务组件库模块
- 每个业务模块对应一个模块,N个业务模块
- App壳模块
App架构展望
- 基于模块化的事件总线框架
- 组件服务化
- 插件化
网友评论