Java 具有给定规格的工厂类
对于我正在使用Java开发的应用程序之一,我有以下要求 拥有一个工厂类C,具有以下方法Java 具有给定规格的工厂类,java,Java,对于我正在使用Java开发的应用程序之一,我有以下要求 拥有一个工厂类C,具有以下方法create(int-src),该方法创建类a和B的对象 如果src=1,该方法将创建类A的对象;类B的对象,如果src=2。 确保除了C之外,没有其他类可以创建A和B的对象 我不能使用反射 这是我到现在为止一直在尝试的 class C{ private int src; public c(){ …//Default constructor } public create (int src){
create(int-src)
,该方法创建类a
和B
的对象
如果src=1
,该方法将创建类A
的对象;类B
的对象,如果src=2
。
确保除了C
之外,没有其他类可以创建A
和B
的对象
我不能使用反射
这是我到现在为止一直在尝试的
class C{
private int src;
public c(){
…//Default constructor
}
public create (int src){
if(src = 1){
A aobj = new A();
}
else if (src=2){
B bobj = new B();
}
}
}
如何改进类定义以确保其与原始规范更一致
谢谢。定义factory类的正确方法(我想您已经想到了)是实现一个接口:
public interface IAbstract { }
public class A implements IAbstract { }
public class C implements IAbstract { }
// The factory interface that creates concrete implementations of IAbstract.
public interface IAbstractFactory {
public IAbstract create();
}
public class AFactory implements IAbstractFactory {
public IAbstract create() {
return new A();
}
}
public class BFactory implements IAbstractFactory {
public IAbstract create() {
return new B();
}
}
根据某些应用程序配置选择要使用的工厂实现。这意味着,factory类中的条件将在代码中移动到更高级别:
public static void main(String args[]) {
int src = Integer.parseInt(args[0]);
IAbstractFactory factory = null;
if (src == 1)
factory = new AFactory();
else if (src == 2)
factory = new BFactory();
IAbstract obj = factory.create();
// ....
}
是否缺少“公共类B实现IAbstract(){}”??