Java - 更改引用变量

Mik*_*aye 0 java variables reference edit

所以我知道参考变量不能改变.

我有两个不同的班级.我们称它们为A和B.它们具有相同的方法(方法称为相同),它们只是为类指定的.

我需要一种聪明的方法来改变实例化的类.

一种方法可能是使用一些布尔测试检查选择了哪个选项,然后实例化相应的类.虽然我担心这会变得笨重和丑陋,所以我试图避免这种方式.必须有更聪明的东西.

目前我正在考虑创建一个新类(例如C),它扩展了与A和B相同的类.

然后我会覆盖这些方法(因为A类和B类也做btw)然后根据设置执行方法(即选择了哪个A或B类).这些方法将返回与A类或B类相同的方法.

希望我不是说完全的胡言乱语.

Buh*_*ndi 6

一种方法是使用工厂模式.

维基百科的部分引用:

与其他创建模式一样,它处理创建对象(产品)的问题,而不指定将要创建的确切对象类.

例如

public abstract class Base {

    public abstract void doSomething();
}

public class A extends Base {

    public void doSomething() {
        System.out.println("A");
    }
}

public class B extends Base {

    public void doSomething() {
        System.out.println("B");
    }
}

public class C extends Base {

    public void doSomething() {
        System.out.println("C");
    }
}

public interface BaseFactory {

    public Base createBase(int condition);

}

public class DefaultBaseFactory implements BaseFactory {

    public Base createBase(int condition) {

        switch (condition) {
            case 0 : return new A();
                break;

            case 1: return new B();
                break;

            case 3: return new C();
                break;

            default: return null;
                break;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)