我可以在工厂中创建Callables并通过调度程序执行吗?

时间:2016-05-19 12:48:15

标签: java multithreading design-patterns

在我的应用程序中,我们根据某些条件创建了两种类型的可调用对象。

我们正在使用主线程中的执行服务执行所有可调用对象并更新数据库。

 public interface CallableTask<T> extends Callable<T>{

 }

 public class Task1 implements    CallableTask<TaskOutCome>{

 }

 public class Task2 implements    CallableTask<TaskOutCome>{

 }

我们可以使用工厂设计模式来创建可调用对象和调度程序设计模式来执行主线程中的所有可调用对象。

2 个答案:

答案 0 :(得分:1)

您当然可以使用工厂来创建任务。调度程序可能不适合执行任务,因为调度程序将事件分派给多个观察者。当事件是任务时,如果你的观察者是任务执行者,你可能会多次执行每个任务,这可能不是你想要的。

答案 1 :(得分:1)

根据您告诉我们的内容,您将根据条件创建多个任务,工厂模式是一个很好的选择,因为它允许您将决策与主逻辑隔离开来。作为一个额外的好处,您可以稍后使用依赖注入来使您的代码更容易测试。

我会说,去吧。