Java: использование полиморфизма, чтобы избежать операторов if?

Я пытаюсь написать Java-программу, которая инициализирует определенные макеты на основе того, что выбирает пользователь. То, что я хочу сделать, это попытаться избежать написания нескольких операторов if, чтобы код можно было масштабировать для будущего использования, если потребуется добавить больше макетов. Я слышал, что лучший способ реализовать это - использовать полиморфизм, но мое понимание полиморфизма все еще немного размыто.

Скажем, я хочу реализовать этот случай:

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

Я думал о создании интерфейса для реализации классов. Что меня смущает, так это то, как он работает в main (). Разве мне не понадобится условный оператор if или switch, чтобы выяснить, какой класс создать?

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

Тогда где-то в основном:

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

}

Разве мне не потребовалось бы переключателя или оператора if в основной программе, чтобы выяснить, какой макет выбрал пользователь во время выполнения?

Спасибо!