我的基类每次在我的代码中都在变化.我怎样才能克服这一点



我在面试中被问到以下问题,我很想知道答案。

我有一个基类,'GeneratorBaseClass'是由Generator扩展。我被问到的问题是关于创建一个新的基类"GeneratorBaseClass2",并让Generator在运行时更改以扩展该基类(而无需更改Generator)。那么,作为代码

的一个例子
public class GeneratorBase1 {
    public GeneratorBase1(){
        System.out.println("Generator Base 1 is used");
    }
}
public class Generator  extends  GeneratorBase1{
    public Generator() {
        //will call the appropriate super class
    }
    public static void main(String[] args){
        Generator test=new Generator();

    }

}

我想让Generator在运行时拾取一个新的GeneratorBase,所以改成

public class GeneratorBase2 {
    public GeneratorBase2(){
        System.out.println("Generator Base 2 is used");
    }
}

Generator的形式可以更改,但不能每次基类更改时都更改。这是关于允许在运行时选择基类,我不想只是改变"extends ...."部分

我已经尽力了。这个问题很模棱两可。为什么有人想要一次又一次地更改基类呢?这可能是因为基类提供的功能在运行时发生了变化。如果是这样的话,有两种可能的情况。

  1. 基类应该是一个接口,仅此而已。

  2. 您应该在基类中组合更改功能,并让实现在运行时更改,就像您的策略设计模式的工作方式一样。

相关内容

最新更新