下面是我的初始化類中,我創建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