SYSTEM ATLASЗагрузка материала

Высокая связность внутри, низкая между

High Cohesion / Low Coupling

Связанная логика должна быть рядом, а модули - зависеть друг от друга минимально.

Простыми словами

Внутри одного модуля должны находиться тесно связанные обязанности, а между модулями — как можно меньше зависимостей. Это похоже на хорошо организованные отделы: каждый отвечает за цельный участок работы и договаривается с другими через понятные правила. Тогда изменение в одном месте реже вызывает цепную поломку по всему проекту.

Механизм действия

Сначала проверяют, есть ли исходное условие из определения. Затем смотрят, как оно влияет на структуру компонентов, потоки данных, ограничения и действия участников. Если эту связь не удаётся наблюдать, принцип не стоит использовать как готовое объяснение.

Пример в работе

Нерабочий подход

В задаче «API» сразу применить привычное решение и назвать происходящее «Высокая связность внутри, низкая между», не проверив, действительно ли работает этот механизм. Так можно улучшить один симптом и пропустить основную причину.

Системный подход

Использовать «Высокая связность внутри, низкая между» как гипотезу: сначала определить границы ситуации и исходное состояние, затем менять только то, что связано с проверяемым механизмом, и смотреть на результат.

Ограничения

Высокая связность внутри модуля и слабая между модулями требуют предметных границ; механическое уменьшение числа зависимостей может создать дублирование и неудобные интерфейсы.

Источник

Edward Yourdon; Larry L. Constantine, “Structured Design: Fundamentals of a Discipline of Computer Program and Systems Design”, 1979.

Первоисточник