Tenho um aplicação que recebe o callback de uma API que informa a situação de um pagamento, o sistema deve realizar uma ação para cada estado que o pagamento se encontra, logo pensei em implementar o state nessa parte do sistema.
Ao começar percebi que mesmo que eu utilize o state fazendo a refatoração dos estados possíveis para classes, eu precisaria fazer um switch para analisar qual o retorno da API, já que ela envia o status do pagamento como string no corpo da requisição, isso parece um pouco redundante e não tenho certeza se está certo ou se seria a melhor solução.
Para ilustrar melhor seria algo tipo isso:
switch ($retorno_API){
case "ESTADO 1":
$context = new Context(new ConcreteStateA());
$context->request1();
break;
case "ESTADO 2":
$context = new Context(new ConcreteStateB());
$context->request1();
break;
}
Parece redundante já que a intenção do State seria evitar esses switch que cresce infinitamente.