tengo una clase abstracta llamada Node
. Contiene un constructor que toma una fila de mi base de datos y crea una instancia de información básica. Todas las piezas de contenido en mi sitio web se extienden esta clase - Person
, Event
, Project
, etc.¿Cuál sería el patrón de diseño apropiado para usar en esta estructura de clase PHP, dado que no hay herencia múltiple?
3 de estas clases se extienden son especiales - cuando se construyen, además de tirar de los valores de la base de datos, sino que también deben consultar un servicio web; si el servicio web proporciona valores que son diferentes de los dados en el DB, deben guardarse en el DB.
En un lenguaje capaz herencia múltiple, esto sería bastante sencillo; cualquiera de estas clases se extendería tanto Node
, como APIData
, o algo así. Sin MI, no estoy seguro de cómo manejar esto. Usar una interfaz no sería útil, ya que no proporciona implementaciones concretas.
El patrón decorador a veces se recomienda como un substituto para algunas características de MI, pero no tiene suficiente experiencia para determinar si esta es la opción apropiada. ¿Alguna sugerencia?
IMO: PHP no admite herencia múltiple es una FUNCIÓN. PD Consulte el patrón de diseño de 'Estrategia' http://www.dofactory.com/Patterns/PatternStrategy.aspx –
Muy pocos idiomas admiten herencia múltiple. Los patrones de diseño normales basados en interfaces y delegación funcionan muy bien en PHP. –