Skip to main content

Чому ISP спрощує рефакторинг?

ISP спрощує рефакторинг, тому що розділені, маленькі інтерфейси створюють локальні зони змін і усувають каскадні модифікації, які зазвичай виникають при роботі з "товстими" інтерфейсами.

Детальніше:

1. Менше місць, куди потрібно вносити зміни

Коли інтерфейс маленький і спеціалізований, його зміна торкається лише тих реалізацій, які дійсно використовують цей контракт. "Товстий" інтерфейс - десятки залежних класів - один змінений метод ламає весь проєкт.

2. Прозоріша архітектура

Маленькі інтерфейси відображають чіткі ролі ("друкує", "сканує", "логує"). Під час рефакторингу легко визначити, яка ділянка системи за що відповідає. З "товстими" інтерфейсами доводиться розбиратися, яка частина стосується якої відповідальності.

3. Простіше повторно використовувати й підміняти реалізації

Якщо інтерфейс невеликий, можна легко замінити одну реалізацію на іншу, не ламаючи клієнтський код. Це особливо важливо під час рефакторингу архітектури або виносу функціональності в окремі сервіси.

4. Уникнення непотрібної функціональності в класах

Коли клас реалізує лише потрібні інтерфейси, всередині нього немає "зайвого" коду. Це зменшує ймовірність помилок при його переписуванні.

5. Локалізація змін

Маленькі інтерфейси означають, що зміна в одній функціональній зоні не торкається іншої. Наприклад, зміна логування не повинна змінювати інтерфейс і класи, відповідальні за мережеве API.

6. Стабільні контракти

Якщо інтерфейс занадто великий, його зміна відбувається часто - кожна команда чи функціональність впливає на нього. Коли інтерфейси маленькі, вони стабільніші, а стабільні контракти - основа безпечного рефакторингу.

7. Спрощує декомпозицію при перенесенні в мікросервіси чи модулі

Розділені інтерфейси легше виділяти в окремі модулі - кожен відповідає за свою "мікрофункцію".

Підсумок: ISP спрощує рефакторинг, тому що скорочує масштаб змін, робить архітектуру яснішою, зменшує пов'язані залежності й дозволяє змінювати частини системи ізольовано, не торкаючись усього проєкту.

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

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

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