Skip to content

低凝集 (LCOM4)

ID: lcom | 重要度: Medium (default)

凝集度は、クラスのメソッドとフィールドがどの程度密接に関連しているかを測定します。archlintLCOM4 (Lack of Cohesion of Methods) 指標を使用します。

なぜこれが「不吉な臭い」なのか

  • SRPの違反: クラスが関連のない2つ以上のことを行っている可能性があります。
  • 脆さ: クラスの一部分を変更すると、関連のない部分に影響を与える可能性があります。
  • 再利用の困難さ: 関連のないロジックを取り込まずに、クラスの一部分だけを使用することができません。

修正方法

  1. Extract Class (クラスの抽出): クラスを2つ以上の小さなクラスに分割し、それぞれに単一の責任を持たせます。
  2. Move Method (メソッドの移動): クラスの状態を使用しないメソッドを、より適切な場所(ユーティリティモジュールなど)に移動します。

設定

yaml
rules:
  lcom:
    severity: medium
    max_lcom: 4
    min_methods: 3

Released under the MIT License.