点击上方“何俊林”,马上关注,每天早上8:50准时推送
真爱,请置顶或星标
一直以来,随着开发App功能越来越多,结构越来越复杂,模块和模块之间耦合度越来越高。很多人认为模块化和组件化没啥区别,其实不然,组件化主要是"基础库"或者“基础组件",意思是把代码重复的部分提炼出一个个组件供给功能使用。使用:Dialog,各种自定义的UI控件、能在项目或者不同项目重复应用的代码等等。目的:复用,解耦。依赖:组件之间低依赖,比较独立。架构定位:纵向分层(位于架构底层,被其他层所依赖)。而模块化主要是"业务框架"或者“业务模块",也可以理解为“框架”,意思是把功能进行划分,将同一类型的代码整合在一起,所以模块的功能相对复杂,但都同属于一个业务。使用:按照项目功能需求划分成不同类型的业务框架(例如:注册、登录、外卖、直播…..)目的:隔离/封装 (高内聚)。依赖:模块之间有依赖的关系,可通过路由器进行模块之间的耦合问题。架构定位:横向分块(位于架构业务框架层)。其实组件相当于库,把一些能在项目里或者不同类型项目中可复用的代码进行工具性的封装。而模块相应于业务逻辑模块,把同一类型项目里的功能逻辑进行进行需求性的封装。
后来衍生出了插件化,Plugin模式,插件化:插件化开发和组件化开发略有不用,插件化开发时将整个app拆分成很多模块,这些模块包括一个宿主和多个插件,每个模块都是一个apk(组件化的每个模块是个lib),最终打包的时候将宿主apk和插件apk分开或者联合打包。
组件化和插件化概念不同,也都各自有的特点。通过一张图来了解:

当然插件化和组件化这两个功能都有一定的技术复杂度,学习不是一件容易的事情,也是面试中经常问的问题。需要长期的坚持。
今天本号联合网易云课堂,给大家送一波福利,都是完全免费的插件化组件化进阶直播课程,相信对你有帮助:
