1
resposta

Qual pattern utilizar?

Boa tarde,

Atualmente estou com um problema no trabalho e não gostaria de resolver da forma fácil, que seria adicionar dois IF's. Estou tentando solucionar usando o Observer como foi mostrado no curso, mas não achei que ficou interessante. O problema é o seguinte, se o retorno do banco for um enum específico, faço duas ações, se for outro enum, faço outras duas ações e assim por diante. Pensei em criar uma interface que representaria o tipo de ação e depois criar classes que implementem essa interface e executem as ações necessárias. A minha dúvida é, o observer é o melhor nessa situação? Reparei que esse tipo de problema ocorre muito no meu sistema atual.

Exemplo:


ENUMQUALQUER retornoDoBanco = buscaDadoClienteXYZ()

if (retornoDoBanco == ENUM.TIPO1) {

    //acao1 - retorna uma mensagem especifica
       //acao2 - apaga os dados na tela
      //acao3 - 

}

if (retornoDoBanco == ENUM.TIPO2) {

    //acao1 - retorna uma mensagem especifica
       //acao2 - apaga os dados na tela
      //acao3 -  outra ação que possa ser adicionada pelo tipo do enum

}
1 resposta

Oi João, acho que o strategy é a melhor solução para o que você descreveu, o caminho é basicamente este ai mesmo, dado um valor, você precisa seguir passos diferentes para resolver um mesmo problema. Você cria a interface e as classes que implementam.