Sto tentando di modellare i prodotti con una serie di attributi completi. Di solito un negozio online usa una descrizione testuale per elencare gli attributi di un prodotto specifico. Tuttavia, questa soluzione non è ottimale.Alternative a una gerarchia di ereditarietà profonda?
Per esempio, i seguenti collegamenti mostrano le incongruenze di attributi all'interno di un testo descrittivo per lo stesso prodotto, ma con diversi produttori:
Pertanto, ho optato per una gerarchia ereditaria come segue:
Product
>Component
>GraphicsCard
>NvidiaGraphicsCard
La ragione di questo è perché voglio il controllo a grana fine nel corso degli attributi di ogni Product
. Ciò mi consente di includere attributi specifici per dire un NvidiaGraphicsCard
che non sono applicabili a uno ATiGraphicsCard
.
Si noti che, oltre all'aggiunta di ulteriori campi alle sottoclassi, l'ereditarietà mi consente di utilizzare il polimorfismo in termini di avere un OrderItem
in possesso di un riferimento a un Product
. Questo è un motivo per cui ho escluso la composizione.
C'è un problema ad avere una gerarchia di ereditarietà così profonda, e in tal caso ci sono soluzioni o forse schemi per gestire questo problema?