# 結合度

結合度を低くしましょう。結合度とは、モジュール間の結合の強さを表す度合いです。結合度が低いほど変更の影響範囲が小さくなります。

以下の種類があります。上のものほど弱い結合です。

  • メッセージ結合 (Message coupling)
    • 引数のないメソッドを呼び出す結合
  • データ結合 (Data coupling)
    • データを渡してメソッドを呼び出す結合
  • スタンプ結合 (Stamp coupling)
    • 構造体を渡してメソッドを呼び出し、構造体の一部しか使わない結合
  • 制御結合 (Control coupling)
    • 処理を制御する情報を渡してメソッドを呼び出す結合
    • フラグなど
  • 外部結合 (External coupling)
    • 外部のデータやプロトコルなどを共有してメソッドを呼び出す結合
  • 共通結合 (Common coupling)
    • グローバルなデータを共有してメソッドを呼び出す結合
  • 内容結合 (Content coupling)
    • 内部動作を共有してメソッドを呼び出す結合
    • 呼び出し先のモジュールの生成タイミング、処理の内容、内部データなどに依存する

NOTE

✏️ 結合度を低くする

# 関連

# 凝集度 / コナーセンス

結合度を低くすると凝集度が高くなったりコナーセンスが弱くなったりします。