1、typescript

其实对象的行为依赖于它的状态(属性),并且可以根据它的状态改变而改变它的相关行为。
只要将State类抽象化处理就可以实现。

  1. class State {
  2. name: string;
  3. constructor(name: string) {
  4. this.name = name
  5. }
  6. doAction(context: Context) {
  7. context.setState(this)
  8. }
  9. }
  10. class Context {
  11. state: any;
  12. constructor() {
  13. this.state = null;
  14. }
  15. setState(state: any) {
  16. this.state = state;
  17. }
  18. getState() {
  19. return this.state
  20. }
  21. }
  22. const context = new Context();
  23. const pedding = new State("pedding");
  24. pedding.doAction(context)
  25. console.log(context.getState())
  26. const resolve = new State("resolve");
  27. resolve.doAction(context)
  28. console.log(context.getState())
  29. const reject = new State("reject");
  30. reject.doAction(context)
  31. console.log(context.getState())