我为一个保存传入任务的队列实现了一个包装器。每次执行任务时,都会向包装器的拥有类调用回调以进行实际执行(doSomething())。
这种实现看起来并不好,因为只要队列中仍有项目,回调就会开始链接在一起并增加堆栈。是否有一个通用的设计模式来分离前一个任务的完成和下一个任务的执行?
public void executeCallback(Task task) {
switch(task.type()) {
case TASK_TYPE1:
doSomething();
break;
case TASK_TYPE2:
doSomethingElse();
}
queueWrapper.executeNextTaskInQueue(); //doesn't look too good
}
}