Какой шаблон проектирования следует использовать в этой структуре классов PHP, если не будет множественного наследования?

У меня есть абстрактный класс под названием Node . Он содержит конструктор, который берет строку из моей базы данных и создает основную информацию. Все части контента на моем веб-сайте расширяют этот класс - Person , Event , Project и т. Д.

3 из этих расширяющихся классов являются особыми - когда они создаются, помимо извлечения значений из базы данных, им также необходимо запрашивать веб-службу; если веб-сервис предоставляет значения, отличные от тех, что указаны в БД, их необходимо сохранить в БД.

В языке, поддерживающем множественное наследование, это было бы довольно просто; любой из этих классов расширил бы как Node , так и APIData , или что-то в этом роде. Без MI я не знаю, как с этим справиться. Использование интерфейса бесполезно, поскольку не дает конкретных реализаций.

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

5
задан hakre 24 July 2012 в 11:47
поделиться