Ответ
Cohesion (связность) — степень, с которой элементы модуля (функции, классы) связаны между собой и работают для одной цели. Высокая связность — хорошо, т.к. код легче поддерживать.
Coupling (связанность) — степень зависимости между модулями. Низкая связанность — хорошо, т.к. изменения в одном модуле меньше влияют на другие.
Пример:
// Высокая связность (хорошо)
class Cart {
addItem() { /* логика добавления */ }
removeItem() { /* логика удаления */ }
}
// Низкая связанность (хорошо)
class Payment {
process(order) { /* обращается к Order через интерфейс */ }
}
Идеал: высокая связность внутри модуля + низкая связанность между модулями.