Java:使用多态性来避免if语句?
2022-09-03 12:28:21
我正在尝试编写一个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语句来找出用户在运行时选择了哪种布局吗?
谢谢!