Главное противоречие ООП
Зачастую многие разработчики сталкиваются с популярным заблуждением в коммерческой разработке.
Оно заключается в том, что для каждого класса, который реализует какую-то логику должен быть свой интерфейс.
Эта ситуация называется InterfaceImplementationPair.
В самом деле привычка восходит корнями к C/C++, где принято разделять header и code файлы.
Однако, время ушло далеко вперёд и надобность в подобных действиях сегодня отсутствует.
Наличие интерфейсов в отсутствие полиморфного поведения, мокирования или потребности в поставке контракта наружу через библиотеку лишь увеличивает стоимость сопровождения кода и количество занимаемых байтов на диске хранилища кодовой базы.
Поэтому не стоит бояться отсутствия интерфейсов, код от этого не потеряет в чистоте.
Зачастую многие разработчики сталкиваются с популярным заблуждением в коммерческой разработке.
Оно заключается в том, что для каждого класса, который реализует какую-то логику должен быть свой интерфейс.
Эта ситуация называется InterfaceImplementationPair.
В самом деле привычка восходит корнями к C/C++, где принято разделять header и code файлы.
Однако, время ушло далеко вперёд и надобность в подобных действиях сегодня отсутствует.
Наличие интерфейсов в отсутствие полиморфного поведения, мокирования или потребности в поставке контракта наружу через библиотеку лишь увеличивает стоимость сопровождения кода и количество занимаемых байтов на диске хранилища кодовой базы.
Поэтому не стоит бояться отсутствия интерфейсов, код от этого не потеряет в чистоте.