結合度
- 結合度の高い順に記載。結合度の内容が参照したサイト毎に微妙に異なるのが困る。
- これからクラス図を見るときは結合度も意識しよう。
- 副作用*1との関係も含めて整理してみたい。
基本の考え方
- 変数のスコープがローカルの結合度 < 変数のスコープがグローバルの結合度
- 受け渡しのパラメータがデータ(数値・文字列)の場合の結合度 < 受け渡しのパラメータが複合データ(クラス・構造体)の結合度 < モジュール間でロジックを共有した場合の結合度
内容結合(病理学的結合)
- 呼び出し元モジュールが呼び出し先モジュール内を直接参照する。
- モジュール同士がからみあっている状態なので事実上モジュール化されていない。
制御結合
- 呼び出し時に制御用のフラグを介してモジュール内の処理を制御する。
- 呼び出し先モジュール内部を呼び出し元が知る必要がありモジュール間の独立性が低い。
- 呼び出し元モジュールのロジックに呼び出し先モジュールが混入する。
スタンプ結合
データ結合
メッセージ結合
- モジュールの呼び出し時に引数が不要。