在命令模式中,您将什么称为将其他命令组合在一起的命令?

时间:2010-02-12 14:23:58

标签: design-patterns naming-conventions command-pattern

这应该很简单,

我正在尝试为命令类提供名称,该命令类是其他命令的集合。运行主命令时,将运行所有子命令。

任何理想?

7 个答案:

答案 0 :(得分:6)

Composite命令,也许?

答案 1 :(得分:2)

复合命令?

答案 2 :(得分:2)

为了它的价值, 来自O'Reilly的关于设计模式的 Head First 书籍称之为 MacroCommand

答案 3 :(得分:1)

“批处理命令”将是我的选择。

答案 4 :(得分:1)

如果您只是创建一个将自动执行命令列表的基类,并且意图按原样使用(即只创建一个通用命令并传入一个子命令列表)那么我会使用一些东西像CompositeCommand或BatchCommand。如果这不是一个泛型类,而是一个硬编码的特定实现,我会在整个操作之后命名它。例如:

BatchCommand registerCmd = new BatchCommand();
registerCmd.add(new CreateProfileCmd());
registerCmd.add(new CreatePreferences());
registerCmd.add(new SendWelcomeEmailCmd());

VS

class RegisterCmd extends Command {
  execute() {
    new CreateProfileCmd().execute();
    new CreatePreferences().execute();
    new SendWelcomeEmailCmd().execute();
  }
}

在第二种情况下,我不会为RegisterCmd类创建新名称。这只是一个恰好调用其他命令来完成其工作的命令。

答案 5 :(得分:0)

可以使用“Script”作为另一种替代后缀(但我可能会使用CompositeCommand)

答案 6 :(得分:0)

我喜欢BatchCommand,它代表它是什么。我认为CompositeCommand非常“模式”,就像“Singleton”前缀一个应该只有一个实例的类一样。