❓ В чём разница между связанностью (coupling) и сцепленностью (cohesion)?
Cohesion (сцепленность) — насколько элементы внутри одного модуля подчинены общей цели. Высокая сцепленность — это хорошо: модуль делает одну вещь и делает её хорошо.
Coupling (связанность) — насколько модули зависят друг от друга. Низкая связанность — это хорошо: изменение в одном модуле не вынуждает переписывать другие.
Цель проектирования — high cohesion, low coupling. Такой код легче читать, тестировать, переиспользовать, а изменения в нём локализованы. Инструменты достижения — разделение ответственности, программирование на интерфейсах, внедрение зависимостей и принципы SOLID.
Post #1321
662
- 👍 5
- 🔥 2
- ❤ 1