WMix, я честно пытаюсь подобрать слова, которые бы Вы поняли. Или примеры, которые бы вы прочитать смогли.
почему ты хочешь так а не иначе
Потому что в моём проекте сущность одновременно является и IResolveCat сущностью, и IResolveDog сущностью. Это одни и те же данные, одна и та же внутренняя структура, но она может быть представлена разными гранями для двух разных аспектов работы системы. Очевидным (полагаю для большинства вменяемых проектировщиков) решением является создание класса, который будет реализовывать два интерфейса (создание реализации, которая будет поддерживать оба контракта). Однако так получилось, по независящим от меня лично причинам, что IResolveCat и IResolveDog имеют по одному методу с одинаковой сигнатурой.
Я знаю точно как обойти это в С++ (ровно, как написано в моём примере), я знаю, как бы можно было это обойти в C#. А что можно сделать в PHP? Как поступить если нужно в одном классе реализовать два интерфейса, которые определяют каждый по методу с одинаковой сигнатурой?
В моём примере resolveCat() не является частью открытого интерфейса. Это как раз та самая "внутренняя реализация". Клиентам моего Resolver она не видна. Специально во втором примере отметил как protected. Виден только метод resolve. Точнее два метода resolve: IResolveCat::resolve и IResolveDog::resolve. Как и требовалось.
AmdY, больше кода! Пока есть те, кто "пишут б***ть!" У меня будет халтурка =)