Принцип разделения интерфейсов (ISP) гласит, что клиенты не должны быть принуждены зависеть от интерфейсов, которые они не используют. Лучше иметь много небольших, конкретных интерфейсов, чем один большой, универсальный.
Применение ISP помогает избежать "жирных" интерфейсов (fat interfaces), которые содержат слишком много методов. Когда класс реализует такой интерфейс, он вынужден реализовывать все его методы, даже те, которые ему не нужны. Это приводит к нарушению принципа единственной ответственности (Single Responsibility Principle) и делает классы более хрупкими и сложными для поддержки.
Пример:
Предположим, у нас есть интерфейс Worker
:
java
Если у нас есть класс Programmer
, он должен реализовать manage()
, хотя программист обычно не управляет другими.
Применение ISP:
Разделяем Worker
на более мелкие интерфейсы:
java
Теперь класс Programmer
может реализовать только нужные интерфейсы:
java
Принцип разделения интерфейсов (ISP) гласит, что клиенты не должны быть принуждены зависеть от интерфейсов, которые они не используют. Лучше иметь много небольших, конкретных интерфейсов, чем один большой, универсальный.
Применение ISP помогает избежать "жирных" интерфейсов (fat interfaces), которые содержат слишком много методов. Когда класс реализует такой интерфейс, он вынужден реализовывать все его методы, даже те, которые ему не нужны. Это приводит к нарушению принципа единственной ответственности (Single Responsibility Principle) и делает классы более хрупкими и сложными для поддержки.
Пример:
Предположим, у нас есть интерфейс Worker
:
java
Если у нас есть класс Programmer
, он должен реализовать manage()
, хотя программист обычно не управляет другими.
Применение ISP:
Разделяем Worker
на более мелкие интерфейсы:
java
Теперь класс Programmer
может реализовать только нужные интерфейсы:
java
Register or sign in to get access to full answers for all questions from the question bank.