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