Опишите возможности звонка, SMS и доступа к сети отдельными интерфейсами, а для полноценного смартфона объедините их. Это позволяет клиентам зависеть только от нужной им возможности.
Создание интерфейса для телефонных функций
Опишите возможности звонка, SMS и доступа к сети отдельными интерфейсами, а для полноценного смартфона объедините их. Это позволяет клиентам зависеть только от нужной им возможности.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Представьте, что у вас есть устройство, способное выполнять звонки, отправлять текстовые сообщения и работать в интернете. Требуется разработать соответствующий интерфейс, описывающий эти возможности.
Ответ
Опишите возможности звонка, SMS и доступа к сети отдельными интерфейсами, а для полноценного смартфона объедините их. Это позволяет клиентам зависеть только от нужной им возможности.
Пример структурных интерфейсов Python:
from typing import Protocol
class Caller(Protocol):
def call(self, number: str) -> None: ...
class Messenger(Protocol):
def send_sms(self, number: str, text: str) -> None: ...
class Browser(Protocol):
def open_url(self, url: str) -> None: ...
class Smartphone(Caller, Messenger, Browser, Protocol):
pass
Конкретное устройство реализует эти методы. Сервис звонков принимает Caller и не требует от простого телефона интернет-функций. Нужно отдельно определить ошибки, подтверждение действий и синхронный/асинхронный контракт; интерфейс сам не реализует внешние вызовы.