组件化:组件化就是基于可重用为目的,将一个大的软件系统按照分离关注点的形式拆分多个独立组件减少耦合
1. 组件,既可以作为library,又可以单独作为application,可以单独编译单独测试,很好的提高了编译和开发效率;
2. 业务组件,可有自己独立的版本,业务线互不干扰,可单独编译,测试,打包,部署
3.各业务线共有的公共模块开发为组件,作为依赖库供各业务线调用,减少重复代码编写,减少冗余,便于维护
4.通过gradle配置文件,可对第三方库的引入进行统一管理,避免版本冲突,减少冗余库
5.通过gradle配置文件,可对各组件实现library与application间便捷切换,实现项目的按需加载
1: 就是"基础库"或者"基础组件", 意思就是把重复的代码部分提炼出一个个组件供给功能使用
2: 功能相对单一或者独立, 在整个系统的代码层次上位于最底层,被其他代码所依赖,所以说组件化是纵向分层。
3: 使用场景: 是对一些重复代码进行封装在需要的时候调用即可( 按钮, 输入框, 搜索框)
4: 目得: 复用, 解耦
模块化:
1: 就是"业务框架"或者"业务模块", 将不同的业务进行划分, 同一类型的整合在一起, 所以功能会相对复杂, 但是都属于同一个业务
2: 按照项目功能需求划分成不同类型的业务框架(注册、登录、外卖、直播.....)
3: 目得: 隔离.分装, 模块之间有依赖的关系, 可以通过路由进行模块直接的耦合问题
组件化和模块化的区别:
组件:就像一个个小的单位,多个组件可以组合成组件库,方便调用和复用,组件间也可以
嵌套,小组件组合成大组件。
模块:就像是独立的功能和项目(如淘宝:注册、登录、购物、直播…),可以调用组件来组成模块,多个模块可以组合成业务框架。
插件化和组化的区别:
插件化开发就是将整个app拆分成很多模块,每个模块都是一个apk(组件化的每个模块是一个lib),最终打包的时候将宿主apk和插件apk分开打包,插件apk通过动态下 发到宿主apk,这就是插件化。