java 执行器服务是命令设计模式的实现吗?

Is java executor service an implementation of Command design pattern?

我正在阅读有关命令模式的内容,我正试图找出它在 JDK 中的实现。我认为执行者服务是命令模式的一种实现。有专家能证实一下吗?

为了扩展我的评论,不,我不会说 ExecutorService 构成命令模式的实现,但可以用作该模式实现的一部分。 ExecutorServices 本身缺少命令模式最重要的方面:命令

该模式的要点是将操作封装在(通常是可重用的)对象中,这样它们就可以在适当的时候使用。您可以使用 Callables 来执行此操作,然后使用 ExecutorService 实际执行需要的命令。但是,ExecutorService 的许多用途实际上并不是那样工作的——所执行的 Callable 不具有我倾向于将其与命令相关联的连贯性或普遍性。然而,这是一个有点主观的判断。

我认为在 Swing 对 javax.swing.Action 的使用中可以找到一个更清晰的命令模式示例。一个实现 Actions(命令)来执行可以通过应用程序 GUI 触发的工作。这些动作与指示它们执行工作的代码分离,实际上每个动作都可以在多个点连接到 GUI,因此可以通过不同的 GUI 手势执行。 Swing 通过提供 Action 接口、调用表示为 Actions 的命令的组件,以及用于将 Actions 与特定组件上的 GUI 手势相关联的 API 来实现命令模式。

例如,在可视化应用程序中,Action X 可能提供将视图向左旋转一步的行为。这是一个连贯的、通用的、相当独立的工作单元。然后,我可以注册要调用的(相同)对象以响应一次或多次击键、菜单项选择,甚至鼠标手势。这将要完成的工作与触发该工作的机制分离,这是命令模式的关键功能特征。