下面是我的初始化类中,我创建Handler
类的多个实例:创建具有不同参数的类的多个实例
@Singleton
public class Initializer {
private static final Logger logger = Logger.getInstance(Initializer.class);
private Handler handlerA;
private Handler handlerB;
private Handler handlerC;
private Handler handlerD;
// add another handler
private Initializer() {
}
@PostConstruct
public void postInit() {
handlerA = new Handler(Type.A, 1);
handlerB = new Handler(Type.B, 1);
handlerC = new Handler(Type.C, 1);
handlerD = new Handler(Type.D, 1);
// add another handler instance
}
@PreDestroy
public void shutdown() {
handlerA.shutdown();
handlerB.shutdown();
handlerC.shutdown();
handlerD.shutdown();
// add another handler shutdown
}
}
而下面是我的处理程序的构造函数:
public Handler(Type type, int poolSize) {
this.executorService = Executors.newFixedThreadPool(poolSize);
for (int i = 0; i < poolSize; i++) {
Loop loop = HandlerFactory.getInstance().create(type);
loops.add(loop);
executorService.submit(loop);
}
}
我问题是 - 如果我需要在我的Initializer
课程中添加另一个handlerE
,那么我需要添加以下行:
private Handler handlerE;
然后在postInit()
和shutdown()
方法中再添加一行。它看起来不错,但我想知道是否有更好的方式来写这个?如果我不得不增加10个处理程序,那么对于所有这些处理程序来说,这将是一条线。
想知道是否有更好的方法来在我的初始化类中编写这些处理程序。我正在使用Java7。
你有一个又一个不同的按类型处理程序?或者一个类型可能有多个处理程序? – davidxxx
一个类型只能有一个处理程序不是多个。 – user1950349
好的。我会向你提出一个答案。 – davidxxx