【もじゅーるけつごうど】
モジュール結合度 とは?
最終更新:
💡 部品同士が、相手の何に依存しているか
モジュール(プログラムの部品)同士の依存の強さ。相手の内部構造や余分な情報に依存するほど、変更が他の部品へ波及しやすくなる。必要な機能を連携させつつ、依存する範囲を小さくすることが設計の目標になる。
📌 このページのポイント
- 結合度はモジュール間の依存の強さを見る考え方
- 必要な情報だけを公開すると、変更の影響を抑えやすい
- 共有データや相手の内部への直接アクセスも依存を生む
- 部品の内部のまとまりを表す凝集度と合わせて考える
モジュール結合度って何なの?
プログラムの部品同士の依存の強さだよ。たとえば料金計算に金額だけが必要なのに、顧客データの内部構造まで知っていると、その構造の変更で計算側も直すことがあるんだ。
結合度は低いほどいいの?
一般には、不要な依存が少ないと変更やテストを行いやすいよ。ただし、部品が連携するための依存は必要。つながりをゼロにするのではなく、何を約束して受け渡すかを明確にするんだ。
どんな種類があるの?
オブジェクトを渡すだけで悪い設計になる?
そうとは限らないよ。大切なのは、受け取る側に必要な情報のまとまりかどうか。金額だけ使う関数に住所や氏名まで含む顧客全体を渡す場合と、必要な項目だけの明確な型を渡す場合では、依存する範囲が違うんだ。
APIを使えば疎結合になる?
窓口を決めることは役立つけれど、それだけでは決まらないよ。相手の内部を隠し、公開するデータや操作の約束を小さく明確にすることが大切。部品の中で関連する仕事がまとまっているかという、凝集度も一緒に考えよう。
📖 おまけ:英語の意味
「Module Coupling」 = モジュール間の結び付き
💬 couplingは結び付きを表す言葉。ここでは、別の部品の情報や動作にどれだけ依存しているかに注目するよ。