Ich bin dabei, eine alte Bibliothek komplett neu zu schreiben, und bin mir nicht sicher, wie ich mit dieser Situation umgehen soll (um des Verständnisses willen: es lebe die Fahrrad-Analogie):
Ich habe die folgenden Klassen:
TBike
- das Fahrrad selbstTBikeWheel
- eines der Räder des FahrradsTBikeWheelFront
yTBikeWheelBack
beide erben vonTBikeWheel
und implementiert dann die spezifischen Dinge, die sie benötigen, zusätzlich
Das ist ziemlich einfach, aber jetzt entscheide ich mich, mehrere Arten von Fahrrädern zu erstellen, wobei jedes Fahrrad seine eigene Art von Rad hat - sie tun das Gleiche wie ein normales Vorder-/Hinterrad, plus das Spezifische für dieses Fahrrad.
TBikeXYZ
- erbt vonTBike
TBikeWheelXYZ
- erbt vonTBikeWheel
Und hier ist mein Problem: TBikeWheelFrontXYZ
sollte erben von TBikeWheelXYZ
(um die spezifischen Methoden eines XYZ-Rads zu erhalten), aber es sollte auch erben von TBikeWheelFront
(um die spezifischen Methoden für ein Vorderrad zu erhalten).
Meine Frage ist, wie kann ich das so implementieren, dass das nicht passiert:
- sich wie ein Trottel fühlen
- mich zwingen, denselben Code mehrmals umzuschreiben