Cohesion — вместе с coupling основная метрика проектирования.

Уровни (Yourdon & Constantine), от худшего к лучшему:

  1. Coincidental — элементы вместе случайно (Utils.py).
  2. Logical — «похожи» по типу действия (StringHelper).
  3. Temporal — вызываются в одно время (Startup.init_all).
  4. Procedural — шаги одной процедуры.
  5. Communicational — работают с одними данными.
  6. Sequential — выход одной = вход следующей.
  7. Functional — служат одной задаче.

Практические маркеры низкой cohesion:

  • Имя с «and»: UserAndEmailManager.
  • Суффиксы -er без чёткой ответственности: Manager, Helper, Processor.
  • Класс > 500 строк.
  • Разные группы полей используются разными группами методов.

Высокая cohesion — единственный способ сделать SRP работоспособным принципом.

Синонимы

Связность

Не путать с

← ко всему глоссарию