Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Indentificação de aplicação de Padrão

Boa tarde,

estou com dificuldade para indetificar qual padrão aplicar na minha situação, minha situação e a seguinte:

eu tenho uma view com alguns paramatros que pode ser enviados ou não para meu controller, esses parametros são


Canal
Rede (Um canal possui varias redes)
Data da venda (Intervalo entre inicial e final)
Email
ID vendedor
Razão social

Então eu tenho algumas condições, que são:

if(canal && !rede){
    pego todos os vendedores que tem nesse canal
}

if(rede) (email e ID mesma coisa porque são unicos){
    pego apenas o vendedor dessa rede
}

if(Razão social){
    pego o aproximado
}

eu tenho esse cenario com basicamente essa estrutura de resolução, mas não quero encher meu codigo de ifs, quero aplicar algum padrão apresentado no curso, como o Strategy que deixa um metodo bem generico, e que me devolve o esperado.

obrigado.

3 respostas

Alguém??????

solução!

Oi Gabriel, tudo bom?

Ifs algoritmicos não são um crime.

Se você não enxerga a necessidade de um pattern nesse contexto é porque provavelmente não há mesmo.

Se você quiser, você pode criar uma classe pra cada valor que é passado pelo seu front e dentro de cada uma criar um método genérico chamado "processa" ou algo do tipo que seja garantido por uma interface e jogar esse processamento pra dentro de cada classe.

Porém, você vai ter que fazer um if pra verificar qual classe intanciar também ou usar reflection pra instanciar pra você. O que aumentaria bastante a complexidade do seu código pra fazer algo que deveria ser simples.

As vezes o melhor pattern é não usar nenhum pattern =)

Nesse cenário, você pode fazer suas condições sem peso na consciencia. Talvez isolar esses ifs em um método com um nome bom já seja o suficiente.

Abraço

Bom dia Andre,

Cheguei a essa conclusão depois, que não faria sentido tentar incluir e um pattern, pq iria acabar usando o IF mesmo assim.

Mas com sua resposta fiquei com menos peso na conciencia kkk

obrigado.