O padrão state permite que um objeto altere seu comportamento quando seu estado interno muda.
Neste exemplo, criamos um padrão de estado simples com uma classe Order que atualizará o status com o método 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 };
Um exemplo completo está aqui? https://stackblitz.com/edit/vitejs-vite-6zcfql?file=state.js
Conclusão
Use esse padrão quando o comportamento do objeto depender de seu estado e seu comportamento mudar em tempo de execução dependendo desse estado.
Espero que você tenha achado útil. Obrigado por ler. ?
Vamos nos conectar! Você pode me encontrar em:
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3