Ich habe zwei Klassen Apple- und orange wie folgt aus:Wie in demselben Verfahren aus zwei verschiedenen Klassen nennen java
public final class Apple{
int getJuice();
}
public final class Orange{
int getJuice();
}
und ich kann sie nicht ändern. Ich habe dritte Klasse fruitsManeger wie folgt aus:
class FruitManeger {
Apple apple;
Orange orange;
enum Fruits{
Apple,Orange
}
Fruits favorFruits;
int getJoice(){
if(favorFruits==Fruits.Apple){
apple.getJuice();
}else if(favorFruits==Fruits.Orange){
orange.getJuice();
}
}
}
Meine Frage: was ist am besten Weg getJuice Methode in FruitManeger Klasse zu implementieren ?.
wie Sie sehen können, wenn ich eine Menge Früchte habe, sollte ich eine Menge von hinzufügen, wenn sonst Ablauf.
natürlich kann ich Reflection verwenden, um Methoden namentlich zu nennen, aber es ist keine gute Idee, wenn getJuice-Methode ein Objekt zurückgibt und Sie etwas damit gleich machen wollen.
Gibt es einen besseren Weg?
ich kann nicht Apfel und Orange Klasse ändern – max
Wir müssen nur fragen, warum Sie nicht Apple und Orange ... ändern können, weil die riesige Menge an if/Case-Anweisungen Sie eine direkte Folge davon ist, bräuchten. Übrigens können Sie Reflection auch für das zurückgegebene Objekt verwenden ... Sie würden einfach mehr if/case-Anweisungen benötigen. –
weil Apple und Orange ist in Java-Bibliothek – max