高凝集

high-cohesion.png

単一責任の原則と同義
クラスは一つの明確な目的と名前を持ち、不整合のない首尾一貫した中身を
持っているべき。

クラスを変更する理由は1つ以上存在してはならない。

良い例はイテレータである。
これは反復処理をするためだけのクラスである。

一つのクラスに一つの責務

なぜcohesion(凝集)という言葉が使われているのか?
一つのクラスが、一つの目的・責務をそれほど密接にサポートしているか、という意味だからである。

もし、クラスが関連しない一連の機能について設計されている場合、それは凝集度が低いという。

凝集度の高いクラスは保守性が高い

この法則の例外

  • singleton….一つのインスタンス管理とグローバルアクセスの提供、だけではなくアプリケーションにおける主要な役割に対しても責務を持つ

サポートサイト Wikidot.com