Coupling — фундаментальная метрика архитектуры. Вместе с Cohesion описывает 90% решений о том, «правильно» или «неправильно».

Виды (Yourdon & Constantine, 1979), от худшего к лучшему:

  1. Content — A залезает во внутренности B.
  2. Common — общение через глобальное состояние.
  3. Control — A управляет поведением B через флаги.
  4. Stamp — передача большой структуры, из которой используется малое.
  5. Data — передача только необходимых данных.
  6. No coupling — модули не связаны.

Мартин добавил метрики для пакетов:

  • Ca (afferent coupling) — сколько модулей зависит от данного.
  • Ce (efferent coupling) — от скольких модулей зависит данный.
  • Instability I = Ce / (Ca + Ce) от 0 до 1.

Стабильные модули (I → 0) должны быть абстрактными. Нестабильные (I → 1) — концентрируют изменения на периферии.

Синонимы

Связанность

Не путать с

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