У меня есть абстрактный класс под названием Node
. Он содержит конструктор, который берет строку из моей базы данных и создает основную информацию. Все части контента на моем веб-сайте расширяют этот класс - Person
, Event
, Project
и т. Д.
3 из этих расширяющихся классов являются особыми - когда они создаются, помимо извлечения значений из базы данных, им также необходимо запрашивать веб-службу; если веб-сервис предоставляет значения, отличные от тех, что указаны в БД, их необходимо сохранить в БД.
В языке, поддерживающем множественное наследование, это было бы довольно просто; любой из этих классов расширил бы как Node
, так и APIData
, или что-то в этом роде. Без MI я не знаю, как с этим справиться. Использование интерфейса бесполезно, поскольку не дает конкретных реализаций.
Шаблон декоратора иногда рекомендуется в качестве замены некоторых функций MI, но у меня недостаточно опыта, чтобы определить, является ли это подходящим выбором. Есть предложения?