Що означає принцип розділення інтерфейсів?
Принцип розділення інтерфейсів (Interface Segregation Principle, ISP) означає, що клієнти не повинні залежати від інтерфейсів, які вони не використовують.
Детальніше:
1. Суть принципу
Інтерфейс має бути невеликим і спеціалізованим. Якщо інтерфейс змушує реалізовувати методи, які клієнту не потрібні, він занадто "товстий" і порушує ISP.
2. Проблема "товстих" інтерфейсів
Коли інтерфейс містить багато непов'язаних методів, реалізація змушена підтримувати функціональність, яка їй не потрібна. Це призводить до:
- непотрібних залежностей,
- хибної зв'язності,
- крихкості коду,
- частих змін через клієнтів, які використовують інші методи.
3. Що вимагає ISP
Розбивати великі інтерфейси на набір дрібних, логічно завершених інтерфейсів, кожен з яких відповідає за одну роль. Клієнт підключає лише той інтерфейс, який йому потрібен.
4. Мотивація принципу
Коли інтерфейси занадто великі, будь-яка зміна в одній частині інтерфейсу призводить до зміни всіх реалізацій, навіть тих, які цей метод не використовують. Це порушує стабільність і збільшує зв'язаність.
5. Ключова ідея
Краще мати кілька маленьких інтерфейсів (IPrinter, IScanner), ніж один великий (IMachine з п'ятьма методами), обов'язковий для всіх.
Підсумок: ISP вимагає створювати невеликі, цільові інтерфейси, щоб клієнти залежали лише від тих методів, які дійсно використовують, що зменшує зв'язаність і підвищує гнучкість системи.
Коротка відповідь
Для співбесідиКоротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.