カップリングの概念
- 結合: モジュールが他のモジュールを認識し、依存している程度を示します。
- 低結合: 1 つのモジュールでの変更は、他のモジュールへの影響が少なくなります。
- 高結合: 1 つのモジュールの変更が他の複数のモジュールに影響を与える可能性があります。
凝集の概念
- 凝集度: モジュールの責任がどの程度適切にグループ化されているかを示します。
- 高い凝集性: モジュールには関連する責任があり、単一のタスクの実行に重点を置いています。
- 結束力が低い: 責任間の関連性が低い。
コミュニケーションアプローチ
メッセージング通信
- 非同期通信。
- モジュールはメッセージを送受信します。
- インターフェイスを介したメッセージ コントラクトの定義。
- モジュール間のデカップリングを促進します。
- モジュールはメッセージ バス経由で通信します
- ツール: RabbitMQ、Kafka など
従来のコミュニケーション
- モジュール間で関数を呼び出します。
- パッケージ間でのオブジェクト、構造体、特性の使用。
- あるモジュールが別のモジュールを呼び出します。
- 名前空間、パッケージ、モジュールの使用。
観察
- 完全なデカップリングを保証することは困難です
- モジュール間には常に何らかの依存関係が存在します。
- コントラクト、インターフェース、メッセージングを使用する場合でも、ある程度の依存関係が存在します。
- あるモジュールと別のモジュールの間に依存関係があるのは通常のことです。
ソースコード:
- https://github.com/ortizdavid/golang-modular-software
以上が結合と凝集の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。