O State é um padrão de projeto comportamental que permite que um objeto altere o comportamento quando seu estado interno for alterado.
O padrão extrai comportamentos relacionados ao estado em classes separadas de estado e força o objeto original a delegar o trabalho para uma instância dessas classes, em vez de agir por conta própria.
Exemplos de uso: O padrão State é ocasionalmente usado no PHP para transformar máquinas de estado grandes e complicadas com base nos operadores switch em objetos.
Identificação: O padrão State pode ser reconhecido por métodos que alteram seu comportamento, dependendo do estado dos objetos, controlados externamente.
Exemplo conceitual
Este exemplo ilustra a estrutura do padrão de projeto State. Ele se concentra em responder a estas perguntas:
De quais classes ele consiste?
Quais papéis essas classes desempenham?
De que maneira os elementos do padrão estão relacionados?
Depois de aprender sobre a estrutura do padrão, será mais fácil entender o exemplo a seguir, com base em um caso de uso PHP do mundo real.
index.php: Exemplo conceitual
Output.txt: Resultados da execução
Exemplo do mundo real
Embora o conceito de máquinas de estado e o próprio padrão State sejam muito populares entre os desenvolvedores, não consigo pensar em nenhum exemplo decente do mundo real desse padrão em uma aplicação PHP de verdade.
No entanto, se você já usou o padrão em seu projeto antes, sinta-se à vontade para compartilhar sua experiência no fórum ou pelo email support@refactoring.guru. Obrigado!