Я пытаюсь написать 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 в основной программе, чтобы выяснить, какой макет выбрал пользователь во время выполнения?
Спасибо!