MacroCommand.ts 849 B

12345678910111213141516171819202122232425262728
  1. import BaseCommand from "../base/BaseCommand";
  2. import SimpleCommand from "./SimpleCommand";
  3. /**
  4. * 组合类型命令基类
  5. */
  6. export default abstract class MacroCommand extends BaseCommand {
  7. /** 组合命令列表 */
  8. private _commandList: {cmd: {new (): SimpleCommand}, body: any}[] = [];
  9. /**
  10. * 初始化组合命令接口,子类必须实现,用于组合命令。
  11. * @example
  12. * this.addSubCommand(Test1Command);
  13. * this.addSubCommand(Test2Command);
  14. */
  15. protected abstract initialize(): void;
  16. /**
  17. * 向组合宏中添加子命令
  18. * @param {{new (): SimpleCommand}} command 子命令
  19. * @param {Object} body 命令参数
  20. */
  21. public addSubCommand(command: {new (): SimpleCommand}, body?: any): void {
  22. this._commandList.push({cmd: command, body: body});
  23. }
  24. }