Hallo,
eine vermutlich blöde Frage, aber ich weiß einfach nicht, wie ich Folgendes lösen soll:
Ich habe ein Objekt Spieler mit der Exemplarvariablen spielVerhalten.
Das Spielerobjekt hat entweder spielVerhaltenA oder spielVerhaltenB.
Auf dem Spieler wird nun eine Methode spielZug() aufgerufen, welche der Spieler eigentlich nur an sein spielVerhalten weitergibt.
Nun liefern die beiden spielVerhalten-Objekte aber verschiedene Rückgabetypen. Das eine ein int und das andere ein Array.
Dass ich das Verhalten kapsele, soll ja nun aber eigentlich dazu führen, dass ich sagen kann spieler.spielZug(), ohne dass ich weiß, was der Spieler für ein spielVerhalten hat.
Aber nun muss ich ja im Spieler bei der Implementation der Methode den Rückgabetyp angeben und würde natürlich gerne reinschreiben: int oder Array.
Mir ist bisher nichts Besseres eingefallen, als eigene Klassen zu schreiben, die Integer und Array erweitern und zusätzlich noch ein selbst definiertes Interface implementieren, nur um eine Schnittstelle zu schaffen.
Aber so ein leeres Interface, das wirklich nur als Schnittstelle gilt, ist doch irgendwie unschön, oder?
Gibt es da einen einfacheren und schöneren Weg?
Vielen Dank für die Hilfe!
eine vermutlich blöde Frage, aber ich weiß einfach nicht, wie ich Folgendes lösen soll:
Ich habe ein Objekt Spieler mit der Exemplarvariablen spielVerhalten.
Das Spielerobjekt hat entweder spielVerhaltenA oder spielVerhaltenB.
Auf dem Spieler wird nun eine Methode spielZug() aufgerufen, welche der Spieler eigentlich nur an sein spielVerhalten weitergibt.
Nun liefern die beiden spielVerhalten-Objekte aber verschiedene Rückgabetypen. Das eine ein int und das andere ein Array.
Dass ich das Verhalten kapsele, soll ja nun aber eigentlich dazu führen, dass ich sagen kann spieler.spielZug(), ohne dass ich weiß, was der Spieler für ein spielVerhalten hat.
Aber nun muss ich ja im Spieler bei der Implementation der Methode den Rückgabetyp angeben und würde natürlich gerne reinschreiben: int oder Array.
Mir ist bisher nichts Besseres eingefallen, als eigene Klassen zu schreiben, die Integer und Array erweitern und zusätzlich noch ein selbst definiertes Interface implementieren, nur um eine Schnittstelle zu schaffen.
Aber so ein leeres Interface, das wirklich nur als Schnittstelle gilt, ist doch irgendwie unschön, oder?
Gibt es da einen einfacheren und schöneren Weg?
Vielen Dank für die Hilfe!