Ich weiß, was ich tun möchte, klingt dumm, aber hören:Inject Funktionalität in zwei Klassen ohne gemeinsame Superklasse
Ich habe abstrakte Klassen Entity
und Player
(erweitert Entity
) und nicht abstrakte Klassen TestPlayer
(erweitert Player
) und TestMob
(erweitert Entity
).
Jetzt bin vor ich folgendes Problem:
ich in TestPlayer
und TestMob
einige abstrakte Methoden in Entity
mit der gleichen Funktionalität implementieren möchten. Theoretisch könnte ich einfach eine andere Klasse erstellen TestEntity
(Verlängerung Entity
) und machen TestPlayer
und TestMob
erben von ihm. Aber dann TestPlayer
konnte nicht mehr von Player
erben. Die Implementierung der Funktionalität direkt in Entity
ist keine Option, da nicht für alle Unterklassen diese Funktionalität vorgesehen ist.
Was könnte eine andere akzeptable Lösung sein, als doppelten Code?
Was Sie wollen, ist buchstäblich eine Schnittstelle .. http://stackoverflow.com/documentation/java/102/interfaces/706/usefulness-of-interfaces#t=201608081851450672638 – Javant
Natürlich I dachte daran. Das Problem hierbei ist, dass 'Player' nicht nur neue Methoden hinzufügt, sondern auch implementiert. – Androbin
Oh okay .. Wenn ich es diesmal richtig lese, würde ich das Strategie-Muster verwenden. @Androbin http://www.tutorialspoint.com/design_pattern/strategy_pattern.htm – Javant