Sobes.tech
Junior — Middle
110

Můžeš uvést příklad, kdy princip rozdělení rozhraní pomáhá udělat programový kód modulárnější a snadněji rozšiřitelný?

Odpověď od AI

sobes.tech AI

Принцип разделения интерфейсов (Interface Segregation Principle) помогает избежать создания больших универсальных интерфейсов, которые вынуждают классы реализовывать методы, которые им не нужны. В Node.js это особенно полезно при проектировании модулей и сервисов.

Например, если у вас есть интерфейс для работы с разными типами уведомлений:

interface NotificationService {
  sendEmail(email: string, message: string): void;
  sendSMS(phone: string, message: string): void;
  sendPushNotification(deviceId: string, message: string): void;
}

Если класс реализует этот интерфейс, но ему нужна только отправка email, он вынужден реализовать и остальные методы, что неудобно.

Разделив интерфейс на более мелкие:

interface EmailSender {
  sendEmail(email: string, message: string): void;
}

interface SMSSender {
  sendSMS(phone: string, message: string): void;
}

interface PushSender {
  sendPushNotification(deviceId: string, message: string): void;
}

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