组件化的优点
开始介绍之前,当然要先罗列一下组件化的优缺点吧。
优点:
- 维护、迭代便捷,只变动要修改组件,程序稳定性有保障
- 组件完全独立,便于复用和移植
- 修改对内可见,对外隐形,不同团队迭代互不干扰
- 独立成应用,便于调试
- 编译速度、调试便捷性全兼容
- 组件动态加载,动态释放,启动速度提高,资源占用减少
- 拓展性强,支持个性化定制
缺点:
- 前期框架搭建有一定门槛
- 组件前期设计耗时耗力
其实就和好车好房逻辑一致,它的缺点就是贵。
怎么组件化
根据已有项目的组件化经验,经过消化整理,形成了一套还算成体系的实现步骤。
要实现组件化,就需要从以下事项入手:
- 组件化分层
- 组件高内聚
- 组件间通信
- 组件单独运行
- 组件引入方式可配置
- 组件生命周期管理
- 组件复用性进阶,支持个性化配置
面对的困境
当然,如果想要一口气实现以上所有步骤,还是有一定的门槛,也需要投入不少的人力的。
新搭建项目还好,框架搭建好之后按部就班的逐一实现即可(就是在整套架构搭建起来之前,需求慢一点)。
若是想对现有项目做完整的组件化改造,非采用休克疗法不可为。毕竟,这些改造全部做完比较耗时,若同时进行需求迭代,天知道会混乱成啥样子。
如何解决
既然步子太大,那就将大工程拆分一下,采用三步走战略,也就是将以上七个事项拆分为三个阶段,逐阶段实现:
- 基本的组件化:实现模块间物理隔离+总线通信
- 组件化进阶二:组件能够独立运行调试
- 组件化进阶三:组件复用性提高+引入组件生命周期管理。不论组件是按照那种架构(MVC、MVP、MVVM),都能够实现UI层、数据层、逻辑层的动态定制
总结
将组件化的优缺点、怎么做、怎么拆分汇总起来,形成了一张比较清晰的表格
| 组件化阶段 | 待完成目标 | 对应的优点 |
|---|---|---|
| 阶段一:基本版 | 组件化分层 | 维护、迭代便捷,只变动要修改组件,程序稳定性有保障 |
| 组件高内聚 | 组件完全独立,便于复用和移植 | |
| 组件间通信 | 修改对内可见,对外隐形,不同团队迭代互不干扰 | |
| 阶段二:标准版 | 组件单独运行 | 独立成应用,便于调试 |
| 组件引入方式可配置 | 编译速度、调试便捷性全兼容 | |
| 阶段三:进阶版 | 组件生命周期管理 | 组件动态加载,动态释放,启动速度提高,资源占用减少 |
| 组件可拓展性提高 | 支持个性化定制 |
👀关注公众号:Android老皮!!!欢迎大家来找我探讨交流👀