Клиенты не должны зависеть от интерфейсов, которые они не используют.
Лучше несколько маленьких интерфейсов, чем один громоздкий.
Каждый интерфейс должен описывать только то поведение, которое действительно нужно конкретному классу.
// Нарушение interface Worker { void work(); void eat(); } class Robot implements Worker { public void work() { System.out.println("Работает"); } public void eat() { /* Робот не ест */ throw new UnsupportedOperationException(); } } // Правильно interface Workable { void work(); } interface Eatable { void eat(); } class Human implements Workable, Eatable { public void work() {} public void eat() {} } class Robot implements Workable { public void work() {} }
Клиенты не должны зависеть от интерфейсов, которые они не используют.
Лучше несколько маленьких интерфейсов, чем один громоздкий.
Каждый интерфейс должен описывать только то поведение, которое действительно нужно конкретному классу.
// Нарушение interface Worker { void work(); void eat(); } class Robot implements Worker { public void work() { System.out.println("Работает"); } public void eat() { /* Робот не ест */ throw new UnsupportedOperationException(); } } // Правильно interface Workable { void work(); } interface Eatable { void eat(); } class Human implements Workable, Eatable { public void work() {} public void eat() {} } class Robot implements Workable { public void work() {} }
// Пример кода
function hello(name) {
console.log(`Hi, ${name}!`);
}
hello("Sergey");