Принцип разделения интерфейсов часто понимают слишком буквально: если в интерфейсе несколько методов, его срочно нужно распилить. В итоге вместо понятной архитектуры появляются десятки файлов вроде
IGetForPeriod, IFormatable и ISendable.Но ISP не про количество методов. Он про то, чтобы клиент не зависел от операций, которыми не пользуется.
В новой статье разбираем на примере PHP-проекта:
— чем ISP отличается от OCP и как связан с LSP;
— почему единый интерфейс для модератора, аналитика и CRM-job опасен;
— когда интерфейс действительно пора разделить;
— почему контракт с одним методом может быть оправдан;
Внутри — PHP-примеры, антипаттерны и чек-лист для code review.
А как у вас: разделение интерфейсов помогало предотвращать ошибки или только увеличивало количество файлов?
