Александр Шульман@developer
Развиваю ИТ
Информация
- В рейтинге
- 170-й
- Откуда
- Санкт-Петербург, Санкт-Петербург и область, Россия
- Дата рождения
- Зарегистрирован
- Активность
Специализация
Генеральный директор
Ведущий
От 3 000 000 ₽
Управление проектами
Ведение переговоров
Разработка ТЗ
Agile
Управление разработкой
Оптимизация бизнес-процессов
Организация бизнес-процессов
Построение команды
Стратегическое планирование
Развитие бизнеса
нужны, пример:
intarface B…
if ($obj instanceof B){} — заранее не известно что будет жить в $obj
поэтому я и писал
Понятно, что все клиенты отвечают за разные части системы и потому держать в основании дерева их классов ObserverClient не целесообразно.
А так например у нас есть готовый модуль (class A) и мы говорим: теперь эта сущность (наш модуль) тоже научилась работать c нашим сервером кеша (class ACached extends A implements CacheClient)
простите, что примеры немного искуственными кажутся, просто полностью раскрывать задачи занятие не для часу ночи.
Но суть такова: интерфейсы необходимы для стандартизации, а ее нельзя достичь простым наследованием т.к. объекты по своей природе не наследуются от одного родителя (например разнопрофильные сторониие библиотеки).
ДУПА дал ответ. habrahabr.ru/blogs/php/45651/#comment_1159897
Но лично я считаю что нужно использовать квик (сейчас сайт не доступен, но можно получить копию у меня (пишите в личку)).
а вообще использование таких вложенных структур осуждается, хотя я лично использую
implements Templater{
public function assign($name, $value);
}
ну или есть у вас в системе Observer, вам скармливают объект-слушающий, а у вас стандартизирован вызов:
Observer::add = public function(ObserverClient $obj);
в основном в таком контексте: тоесть для формализации ТЗ и интерфейса доступа.
как показывает опыт интерфейсы незаменимы при стандартизации интерфейсов. Таким образом вы готовите почву для рефакторинга и проведя его вы как правило получите выигрыш в скорости намного больший чем экономя на них. я не говорю даже о устойчивости кода, о наглядности (засчет выделения абстракций), о скорости нахождения лог.ошибок.