Estoy intentando modelar productos con un conjunto de atributos integrales. Por lo general, una tienda en línea usaría una descripción de texto para enumerar los atributos de un producto específico. Sin embargo, esta solución no es óptima.¿Alternativas a una jerarquía de herencia profunda?
Por ejemplo, los siguientes enlaces muestran las inconsistencias de los atributos dentro de una descripción de texto para el mismo producto, pero con diferentes fabricantes:
Por lo tanto, he optado por una jerarquía de herencia de la siguiente manera:
Product
>Component
>GraphicsCard
>NvidiaGraphicsCard
La razón de esto es porque quiero un control preciso sobre los atributos de cada Product
. Esto me permite incluir atributos específicos para decir un NvidiaGraphicsCard
que no son aplicables a un ATiGraphicsCard
.
Tenga en cuenta que, además de agregar más campos a las subclases, la herencia me permite hacer uso del polimorfismo en términos de tener un OrderItem
mantener una referencia a Product
. Esta es una razón por la que descarté la composición.
¿Existe algún problema para tener una jerarquía de herencia tan profunda y, de ser así, existen soluciones o patrones para solucionar este problema?