Struchkov Mark
1536a6c68c
All checks were successful
continuous-integration/drone/push Build is passing
1.8 KiB
1.8 KiB
aliases | tags | date | zero-link | parents | linked | ||||
---|---|---|---|---|---|---|---|---|---|
|
|
2024-09-27 |
|
|
Лучше создавать несколько специализированных интерфейсов, чем один универсальный интерфейс, который вынуждает реализовать ненужные методы. Каждый интерфейс должен описывать только те действия, которые будут использоваться конкретным клиентом.
- Пример нарушения ISP: Один интерфейс заставляет классы реализовывать методы, которые они не используют.
- Решение: Разделить интерфейс на несколько специализированных.
public interface Worker {
void work();
void eat();
}
public class RobotWorker implements Worker {
public void work() {
// Робот работает
}
public void eat() {
// Робот не ест — нарушение ISP
}
}
Можно разделить интерфейсы:
public interface Worker {
void work();
}
public interface Eater {
void eat();
}
Мета информация
Область:: ../../meta/zero/00 Архитектура ПО Родитель:: SOLID Источник:: Создана:: 2024-09-27 Автор::