論理的凝集と機能的凝集

https://ubiteku.oinker.me/2016/03/22/tdd%e5%86%8d%e8%80%83-8-%e5%87%9d%e9%9b%86%e6%80%a7%ef%bc%88cohesion%ef%bc%89%e3%81%a8%e3%81%af%e4%bd%95%e3%81%aa%e3%81%ae%e3%81%8b%ef%bc%9f/

論理的凝集

機能的な特徴よりも、技術的な特徴でグルーピングを行った凝集性。
例えば、データアクセスを行うモジュールをグルーピングしたもの。
論理的凝集を実現することによって、結果的に機能的凝集を失う事になる。 たとえば、各業務で使うすべてのSQL発行を1つのクラスにまとめると、論理的凝集が上がる。

機能的凝集

機能的凝集はビジネスドメインの概念によって決まる凝集性。
例えば、レイヤーアーキテクチャを適用すると、ビジネスドメイン上の一つのコンセプトが複数のレイヤーの間に引き裂かれて分散してしまう。
たとえば、1つの業務で使うSQL発行、計算ロジック、画面の振る舞いを1つのクラスにまとめると、機能的凝集が上がる。