SimpleCommand.ts 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. /**
  2. * 命令基类
  3. */
  4. import BaseCommand from "../base/BaseCommand";
  5. import BaseModel from "../base/BaseModel";
  6. import {Facade} from "../Facade";
  7. import CommandManager from "../manager/CommandManager";
  8. export default abstract class SimpleCommand extends BaseCommand {
  9. /**
  10. * 执行命令接口
  11. * @param {Object} body 命令参数
  12. */
  13. public abstract execute(body?: any): void;
  14. /**
  15. * 撤销命令接口
  16. * @param {Object} body 命令参数
  17. */
  18. public abstract undo(body?: any): void;
  19. /**
  20. * 获取model对象
  21. * @param {{new (): BaseModel}} model
  22. */
  23. public getModel<T extends BaseModel>(model: {new (): T}): T {
  24. return Facade.getInstance().getModel(model);
  25. }
  26. /**
  27. * 执行命令
  28. * @param {{new (): BaseCommand}} command 命令对象
  29. * @param {Object} body 命令参数
  30. */
  31. public sendCmd(command: {new (): BaseCommand}, body?: any): void {
  32. CommandManager.getInstance().__executeCommand__(command, body);
  33. }
  34. /**
  35. * 撤销命令
  36. * @param {{new (): BaseCommand}} command 命令对象
  37. * @param {Object} body 命令参数
  38. */
  39. public undoCmd(command: {new (): BaseCommand}, body?: any): void {
  40. Facade.getInstance().__undoCommand__(command, body);
  41. }
  42. public sendNoti(): void {
  43. }
  44. }