Java: ¿usando polimorfismo para evitar sentencias if?

Estoy intentando escribir un programa java que inicializa ciertos diseños basados en lo que el usuario selecciona. Lo que quiero hacer es tratar de evitar escribir un montón de sentencias if para que el código pueda ser escalable para uso futuro si es necesario agregar más diseños. Escuché que la mejor manera de implementar esto es usando el polimorfismo, pero mi comprensión del polimorfismo todavía es un poco confusa.

Digamos que quiero implementar este caso:

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

Estaba pensando en crear una interfaz para implementar las clases. Lo que me confunde es cómo funciona en main (), ¿no necesitaré todavía una instrucción condicional if o switch para descubrir qué clase instanciar?

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}
}

Luego en algún lugar principal:

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(); }

}

¿Todavía no necesitaría un modificador o una instrucción if en el programa principal para determinar qué diseño ha elegido el usuario durante el tiempo de ejecución?

¡Gracias!

Respuestas a la pregunta(9)

Su respuesta a la pregunta