传统工程架构
架构图
存在的问题
1.业务逻辑,与基础功能没有做区分,紧密耦合在一起,代码复用性为0。(比如你要开发另外一个App,那么你就必须要将App中的代码拷贝过去,修改包名等的操作)
2、想要废弃某个功能,耦合太严重,工作量非常的大。
模块化架构
架构图
宿主:不存放任何的逻辑,就是一个壳子(❤)
业务组件:每一个独立的业务是一个独立的子工程。
基础业务组件:公司的App都用的东西。
功能组件:完全与业务没有关系。
优点
如果要实现一个新的App,那么其中的宿主,基础业务组件和功能组件基本上可以复用,我们只需要编写业务组件就好,提高效率和复用性。
缺点
业务组件的强依赖,比如首页业务,登录业务,搜索业务,详情业务之间的强依赖。
组件化架构
架构图
缺点
1、比如首页业务依赖登录业务,首页业务依赖搜索业务,业务组件之间耦合严重。
2、使用路由跳转以后,维护起来比原来的直接跳转维护难度增加。
优点
通过路优化改造,可以解耦业务的模块。可以去掉这种强依赖。
组件化架构总结
1、比较大型的公司,都在使用组件化的设计思想。
2、组件化 = 模块化 + 路由改造。
对于有很多款App的公司来说,使用组件化架构是非常节省开发时间和成本的,但是对于小型公司来说,使用普通的架构和模块化的架构维护起来可能还要比组件化的架构更容易些。
组件化架构详细介绍
组件化架构的图示
宿主:只有一个空的apk
业务组件:写业务
基础业务组件:比如写一些自定义控件等
功能组件:写一些基础的功能,网络请求,图片加载,分享,二维码识别,webView等,注意其中的命名方式,可以使用lib_功能的形式。
功能组件
lib_network:网络组件
lib_image_loader:图片加载组件
lib_share:分享组件
lib_catch_error:捕获异常
lib_update_app:app升级组件
lib_webview: WebView组件
lib_qrcode:二维码扫描组件