【软件设计】架构设计 分析组件化与模块化之间的区别
前言
组件化与模块化已经深入体现到软件开发当中,也是为了让开发者更好的去解决软件上的高耦合、低内聚、无重用的3大代码问题。在写这篇文章之前,我也百度过很多相关介绍文章,各个作者都有自己的一些想法或者总结,所以当时看得比较乱,在实践过程中也存在不少疑惑(很多时候不知道选择用组件还是模块,或者有时候根本分不清自己这得是组件还是模块。云里雾里~~)。因此为了解决这些疑惑帮自己统一了组件化与模块化的使用方式与概念、定位。
概念
组件化
就是"基础库"或者“基础组件",意思是把代码重复的部分提炼出一个个组件供给功能使用。
使用:Dialog,各种自定义的UI控件、能在项目或者不同项目重复应用的代码等等。
目的:复用,解耦。
依赖:组件之间低依赖,比较独立。
架构定位:纵向分层(位于架构底层,被其他层所依赖)。
模块化
就是"业务框架"或者“业务模块",也可以理解为“框架”,意思是把功能进行划分,将同一类型的代码整合在一起,所以模块的功能相对复杂,但都同属于一个业务。
使用:按照项目功能需求划分成不同类型的业务框架(例如:注册、登录、外卖、直播.....)
目的:隔离/封装 (高内聚)。
依赖:模块之间有依赖的关系,可通过路由器进行模块之间的耦合问题。
架构定位:横向分块(位于架构业务框架层)。
总结
其实组件相当于库,把一些能在项目里或者不同类型项目中可复用的代码进行工具性的封装。
而模块相应于业务逻辑模块,把同一类型项目里的功能逻辑进行进行需求性的封装。
链接:https://www.jianshu.com/p/cac0beae8876
各种软件开发系统架构图案例:https://max.book118.com/html/2018/1128/8026065006001135.shtm
https://wenku.baidu.com/view/c144f6315b0102020740be1e650e52ea5518ceca.html