假设我有工厂类 FactoryA
和 FactoryB
的接口(interface),以及用于生成 A
和 B
类型对象的方法> 分别,并假设我有这些接口(interface)的实现。现在假设我需要一个工厂类 FactoryAB
来实现两个接口(interface),即同时生成 A
和 B
。有没有一种简单的方法来组合接口(interface) FactoryA
和 FactoryB
的实现来获得 FactoryAB
?
编辑: 这是因为一个类需要大量工厂来生产大量不同的对象。在这种情况下,在我看来,只拥有一个大型工厂来生产所有需要的组件,而不是跟踪许多小型工厂会更方便。
主要目标是不必编写太多代码来实现这一点。也许,其他一些模式更适合这种情况?
编辑2: 本质上,我希望摆脱臃肿的代码,例如:
public class Consumer {
FactoryA factoryAImpl;
FactoryB factoryBImpl;
// ...
FactoryY factoryYImpl;
FactoryZ factoryZImpl;
public Consumer(FactoryA factoryA, FactoryB factoryB, ..., FactoryZ factoryZ) {
// ...
}
//...
}
拥有紧凑/简单的代码,例如:
public class Consumer {
FactoryAtoZ factoryAtoZImpl;
public Consumer(FactoryAtoZ factoryAtoZ) {
// ...
}
//...
}
最佳答案
你可以用组合来做到这一点:
public class FactoryAB implements FactoryA, FactoryB
{
FactoryA factoryAImpl = new FactoryAImplementor();
FactoryB factoryBImpl = new FactoryBImplementor();
public ObjectA getObjectA() {
return factoryAImpl.getObjectA();
}
public ObjectB getObjectB() {
return factoryBImpl.getObjectB();
}
}
关于java - Java中有没有一种简单的方法来组合工厂?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28418953/