Java: Verwenden von Polymorphismus, um if-Anweisungen zu vermeiden?

Ich versuche, ein Java-Programm zu schreiben, das bestimmte Layouts basierend auf der Auswahl des Benutzers initialisiert. Ich möchte vermeiden, eine Reihe von if-Anweisungen zu schreiben, damit der Code für die zukünftige Verwendung skalierbar ist, wenn weitere Layouts hinzugefügt werden müssen. Ich habe gehört, der beste Weg, dies umzusetzen, sei die Verwendung von Polymorphismus, aber mein Verständnis von Polymorphismus ist immer noch ein wenig verschwommen.

Sag ich möchte diesen Fall implementieren:

if (user choose layoutA) { initialize layoutA }
if (user choose layoutB) { initialize layoutB }
if (user choose layoutC) {initialize layoutC }

Ich habe darüber nachgedacht, eine Schnittstelle für die Implementierung von Klassen zu erstellen. Was mich verwirrt ist, wie es in main () funktioniert. Brauche ich nicht immer noch eine bedingte if- oder switch-Anweisung, um herauszufinden, welche Klasse instanziiert werden soll?

interface LayoutHandler {
    public void initializeLayout();
}

class layoutA implements LayoutHandler { 
    public void initialize Layout {initialize layout A}
}
class layoutB implements LayoutHandler { 
    public void initialize Layout {initialize layout B}
}
class layoutC implements LayoutHandler { 
    public void initialize Layout {initialize layout C}
}

Dann irgendwo in main:

public static void main() {
   getlayoutselectionfromuser()
   if (user choose layoutA) { LayoutHandler layout = new layoutA(); }
   if (user choose layoutB) { LayoutHandler layout = new layoutB(); }
   if (user choose layoutC) { LayoutHandler layout = new layoutC(); }

}

Benötige ich nicht noch einen Schalter oder eine if-Anweisung im Hauptprogramm, um herauszufinden, welches Layout der Benutzer zur Laufzeit gewählt hat?

Vielen Dank

Antworten auf die Frage(18)

Ihre Antwort auf die Frage