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