Estoy haciendo una reescritura completa de una biblioteca antigua, y no estoy seguro de cómo manejar esta situación (por el bien de ser entendido, toda la analogía bicicleta gran angular):¿Cómo implementar herencia múltiple en delphi?
Tengo las siguientes clases:
TBike
- la moto en síTBikeWheel
- una de las ruedas de la bicicletaTBikeWheelFront
yTBikeWheelBack
, ambos hereda deTBikeWheel
y luego implementa la materia específica que necesitan en la parte superior de la misma
Esto es bastante sencillo, pero ahora decido crear varios tipos de bicicletas, cada una con sus propios tipos de ruedas: hacen lo mismo que las ruedas delanteras/traseras normales, más lo específico para esa bicicleta .
TBikeXYZ
- hereda deTBike
TBikeWheelXYZ
- hereda deTBikeWheel
Y aquí es mi problema: TBikeWheelFrontXYZ
debe heredar de TBikeWheelXYZ
(para obtener los métodos específicos de una rueda XYZ), pero también debe heredar de TBikeWheelFront
(para obtener los métodos específicos de una rueda delantera).
Mi pregunta aquí es, ¿cómo puedo aplicar eso de una manera que no lo hace:
- siento como un truco
- me obligan a volver a escribir el mismo código varias veces
+1, la contención a menudo modela la realidad mucho mejor que la herencia. – mghie