Mik*_*aye 0 java variables reference edit
所以我知道参考变量不能改变.
我有两个不同的班级.我们称它们为A和B.它们具有相同的方法(方法称为相同),它们只是为类指定的.
我需要一种聪明的方法来改变实例化的类.
一种方法可能是使用一些布尔测试检查选择了哪个选项,然后实例化相应的类.虽然我担心这会变得笨重和丑陋,所以我试图避免这种方式.必须有更聪明的东西.
目前我正在考虑创建一个新类(例如C),它扩展了与A和B相同的类.
然后我会覆盖这些方法(因为A类和B类也做btw)然后根据设置执行方法(即选择了哪个A或B类).这些方法将返回与A类或B类相同的方法.
希望我不是说完全的胡言乱语.
一种方法是使用工厂模式.
维基百科的部分引用:
与其他创建模式一样,它处理创建对象(产品)的问题,而不指定将要创建的确切对象类.
例如
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)