يسمح نمط الحالة للكائن بتغيير سلوكه عندما تتغير حالته الداخلية.
في هذا المثال، قمنا بإنشاء نمط حالة بسيط باستخدام فئة Order التي ستقوم بتحديث الحالة باستخدام طريقة next().
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