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
結論
オブジェクトの動作がその状態に依存し、その動作がその状態に応じて実行時に変化する場合に、このパターンを使用します。
お役に立てば幸いです。読んでいただきありがとうございます。 ?
つながろう!あなたは私を見つけることができます:
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3