联轴器概念
- 耦合性:表示一个模块了解和依赖其他模块的程度。
- 低耦合:一个模块的更改对其他模块的影响较小。
- 高耦合:一个模块中的更改可能会影响其他几个模块。
凝聚力概念
- 内聚性:表示模块职责的分组程度。
- 高内聚:模块具有相关的职责,并且专注于执行单个任务。
- 低内聚力:职责相关性较低。
沟通方式
消息通讯
- 异步通信。
- 模块发送和接收消息。
- 通过接口定义消息契约。
- 促进模块之间的解耦。
- 模块通过消息总线进行通信
- 工具:RabbitMQ、Kafka等
传统传播
- 模块之间调用函数。
- 在包之间使用对象、结构、特征。
- 一个模块调用另一个模块。
- 命名空间、包、模块的使用。
观察结果
- 很难保证完全解耦
- 模块之间总是存在一些依赖关系。
- 即使使用合约、接口和消息传递,也会存在一定程度的依赖性。
- 一个模块与另一个模块之间存在依赖关系是正常的。
源代码:
- https://github.com/ortizdavid/golang-modular-software
以上是耦合与内聚的详细内容。更多信息请关注PHP中文网其他相关文章!