组件化之路 模块的设计

组件化最大的特点就是多模块,将项目的业务逻辑进行“分解”,那模块的设计显得很重要!

我在重构项目时,最终将其分为5层模块:

组件化之路 模块的设计

App模块

主要有引导页和欢迎页,如果主页面包含多个Fragment(如QQ主页面,有4个子页面),而且不包含业务的,也可以放到App模块。App模块依赖各业务模块,把各个业务的Activity注册到AndroidManifest文件中。

业务模块

各个业务独立出来,自己干自己的活,所有(除了公共业务)的Activity都定义在这层模块中,可以使用路由机制实现各业务模块Activity的跳转。依赖公共业务模块。

公共业务模块

包括多个业务模块共同需要的业务。依赖各个功能模块,这样的话,各个子业务模块依赖了这个公共业务模块,就不用再去挨个依赖各个功能模块。

功能模块

这一层的模块是一个功能性的模块,如网络模块,数据库模块,缓存模块等,不涉及任务业务逻辑。依赖总公共模块。

总公共模块

主要是依赖各个库,如retrofit2等,还可以定义BaseActivity之类的,属于最底层的模块。

以上是我对模块设计一点小结,如对模块的设计有更好的想法,欢迎交流!!