Главное противоречие ООП



Зачастую многие разработчики сталкиваются с популярным заблуждением в коммерческой разработке.



Оно заключается в том, что для каждого класса, который реализует какую-то логику должен быть свой интерфейс.



Эта ситуация называется InterfaceImplementationPair.



В самом деле привычка восходит корнями к C/C++, где принято разделять header и code файлы.



Однако, время ушло далеко вперёд и надобность в подобных действиях сегодня отсутствует.



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



Поэтому не стоит бояться отсутствия интерфейсов, код от этого не потеряет в чистоте.