Встречается на собеседованиях • сегодня

Приведи пример принципа Dependency Inversion

Dependency Inversion Principle (DIP) гласит, что модули верхнего уровня не должны зависеть от модулей нижнего уровня, а оба должны зависеть от абстракций. Пример:

python
from abc import ABC, abstractmethod

class NotificationService(ABC):
    @abstractmethod
    def send(self, message: str):
        pass

class EmailService(NotificationService):
    def send(self, message: str):
        print(f"Sending email: {message}")

class SMSService(NotificationService):
def send(self, message: str):
print(f"Sending SMS: {message}")

class NotificationManager:
def init(self, service: NotificationService):
self.service = service

text
def notify(self, message: str):
    self.service.send(message)

Использование

email_notifier = NotificationManager(EmailService())
sms_notifier = NotificationManager(SMSService())

email_notifier.notify("Hello via Email")
sms_notifier.notify("Hello via SMS")

text

Здесь `NotificationManager` зависит от абстракции `NotificationService`, а не от конкретных реализаций. Это позволяет легко добавлять новые способы уведомлений без изменения кода менеджера.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы