Я видел код, где каждый класс имеет интерфейс, который он реализует.
Иногда для них нет общего интерфейса.
Они там, и они используются вместо конкретных объектов.
Они не предлагают общий интерфейс для двух классов и специфичны для области проблемы, которую решает класс.
Есть ли причина для этого?