> 웹 프론트엔드 > JS 튜토리얼 > JavaScript 디자인 패턴 - 동작 - 상태

JavaScript 디자인 패턴 - 동작 - 상태

WBOY
풀어 주다: 2024-08-16 06:03:33
원래의
1099명이 탐색했습니다.

JavaScript Design Patterns - Behavioral - State

상태 패턴을 사용하면 객체의 내부 상태가 변경될 때 객체의 동작을 변경할 수 있습니다.

이 예에서는 next() 메소드로 상태를 업데이트하는 Order 클래스를 사용하여 간단한 상태 패턴을 생성합니다.

const ORDER_STATUS = {
  waitingForPayment: 'Waiting for payment',
  shipping: 'Shipping',
  delivered: 'Delivered',
};

class OrderStatus {
  constructor(name, nextStatus) {
    this.name = name;
    this.nextStatus = nextStatus;
  }

  next() {
    return new this.nextStatus();
  }
}

class WaitingForPayment extends OrderStatus {
  constructor() {
    super(ORDER_STATUS.waitingForPayment, Shipping);
  }
}

class Shipping extends OrderStatus {
  constructor() {
    super(ORDER_STATUS.shipping, Delivered);
  }
}

class Delivered extends OrderStatus {
  constructor() {
    super(ORDER_STATUS.delivered, Delivered);
  }
}

class Order {
  constructor() {
    this.state = new WaitingForPayment();
  }

  next() {
    this.state = this.state.next();
  }
}

export { Order };
로그인 후 복사

전체 예가 여기에 있습니까? https://stackblitz.com/edit/vitejs-vite-6zcfql?file=state.js

결론

객체의 동작이 상태에 따라 달라지고 해당 상태에 따라 런타임에 동작이 변경되는 경우 이 패턴을 사용하세요.


도움이 되셨기를 바랍니다. 읽어주셔서 감사합니다. ?

연결하자! 저를 다음에서 만나보실 수 있습니다:

  • 매체: https://medium.com/@nhannguyendevjs/
  • 개발자: https://dev.to/nhannguyendevjs/
  • 해시노드: https://nhannguyen.hashnode.dev/
  • 링크드인: https://www.linkedin.com/in/nhannguyendevjs/
  • X(이전 Twitter): https://twitter.com/nhannguyendevjs/
  • 커피 사주세요: https://www.buymeacoffee.com/nhannguyendevjs

위 내용은 JavaScript 디자인 패턴 - 동작 - 상태의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿