Что такое Interface Segregation Principle?

Senior
191 просмотров
AFK Offer AI

ISP — клиент не должен зависеть от методов, которые не использует. Плохо: class Worker(ABC): work(), eat(), sleep() — робот не ест. Хорошо: Workable, Feedable, Sleepable — маленькие интерфейсы. В Python: Protocol идеален для ISP — определяй минимальный набор методов. class Readable(Protocol): def read(self) -> str. class Writable(Protocol): def write(self, data: str). Файл реализует оба, сокет — только Readable. Множественное наследование от ABC тоже работает. Маленькие интерфейсы = гибкость и тестируемость.

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

Что такое Value Objects?