我正在尝试编写一个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}
}
然后在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(); }
}
我是否仍不需要在主程序中进行切换或if语句来确定用户在运行时选择了哪种布局?
谢谢!