Принцип разделения интерфейсов (ISP) гласит: клиенты не должны зависеть от интерфейсов, которые они не используют.
Это означает, что вместо создания одного большого интерфейса с множеством методов, лучше создать несколько более мелких и специализированных интерфейсов. Каждый клиент должен реализовывать только те интерфейсы, которые ему действительно необходимы.
Преимущества следования ISP:
Пример:
Вместо:
java
Лучше:
java
Тогда класс HumanWorker может реализовать все три:
java
А какой-нибудь RobotWorker только Workable:
java