Middle+
47
questionbank

Расскажите о принципе разделения интерфейсов (Interface Segregation Principle).

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

Принцип разделения интерфейсов (ISP) гласит: клиенты не должны зависеть от интерфейсов, которые они не используют.

Это означает, что вместо создания одного большого интерфейса с множеством методов, лучше создать несколько более мелких и специализированных интерфейсов. Каждый клиент должен реализовывать только те интерфейсы, которые ему действительно необходимы.

Преимущества следования ISP:

  • Снижение связанности: Изменения в одном методе большого интерфейса не затрагивают клиентов, которые не используют этот метод.
  • Более гибкий код: Легче добавлять новые реализации, так как они обязаны реализовывать только нужные интерфейсы.
  • Улучшенная читаемость: Код становится понятнее, когда интерфейсы четко определяют конкретные обязанности.

Пример:

Вместо:

java

Лучше:

java

Тогда класс HumanWorker может реализовать все три:

java

А какой-нибудь RobotWorker только Workable:

java