Skip to main content

Як SRP пов'язаний з поняттями "cohesion" і "coupling"?

SRP напряму пов'язаний з поняттями зв'язності (cohesion) і зв'язаності (coupling), тому що він підсилює першу і зменшує другу.

Детальніше:

1. Cohesion - внутрішня зв'язність модуля

Висока зв'язність означає, що всі елементи класу логічно стосуються одного завдання. SRP прагне саме до цього: один модуль - одна відповідальність. Якщо відповідальність одна, методи, поля і логіка природно групуються навколо спільної мети - зв'язність зростає.

2. Coupling - залежність між модулями

Низька зв'язаність означає, що, змінюючи один модуль, ми не змушені змінювати інші. Коли клас має кілька обов'язків, він тягне до себе безліч різнорідних залежностей: БД, API, логи, файлову систему. Це підвищує coupling. Застосування SRP розділяє такі обов'язки по окремих компонентах і зменшує кількість залежностей кожного - отже, зменшує coupling.

3. Зв'язок понять

  • SRP → підвищує cohesion, тому що модуль стає тематично цільним.
  • SRP → зменшує coupling, тому що кожен модуль залежить тільки від того, що стосується його конкретного завдання.

4. Результат для архітектури

Вища зв'язність і нижча зв'язаність ведуть до покращення підтримуваності, модульності і тестованості системи.

Таким чином, SRP - це практичний механізм досягнення високого cohesion і низького coupling в архітектурі.

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.