2012-04-09 14 views
0

Ich entwerfe ein Inventartypsystem für meine Firma, und ich habe ein paar verschiedene Arten von Produkten. Ein paar von ihnen sind Kombinationen von zwei oder mehreren Typen:Objektorientiertes Klassendesign - Mixin-Klassen - Entscheidung für eine effektive Klassenstruktur

Niedrige Art: Item

Mixin Klassen: MA, MB, MC, MAB

abgeleiteten Typen:

A (MA + Item),

B (MB + Item),

C (MC + Item)

und verpackt Teile, die:

A + B (MAB + Item)

A + B + C (MAB + C)

* Ich muss in der Zukunft mehr zu dieser Hierarchie hinzufügen können.

Ich erwog, Mixin-Klassen zu verwenden, wobei jedes einzelne Teil von Item abgeleitet ist, und eine Mixin-Klasse. Ich war noch nie wirklich erfolgreich darin, eine Hierarchie zu schreiben. Ich würde wirklich wissen, ob jemand dachte, dass das ein guter Weg wäre, ein solches System zu entwickeln? Wenn nicht, irgendwelche anderen Ideen?

Antwort

0

Mehrfache Vererbung kann zu weniger komplexem Code führen.

Es liegt an Ihnen, sich entscheiden, das ist einfacher:

class MyItem : public MA<MB<C> > {}; // I'm not sure how your mixin syntax works. 

oder:

class MyItem: public A, public B, public C {}; // multiple inheritance