Olé pessoal!
Possuo uma dúvida sobre o uso do padrão Strategy!
Pelo que o instrutor falou e também pelas minhas pesquisas, o resumo da ópera, é que ele é um padrão de projeto comportamental, que cuida de agruparmos em interfaces strategy, situações onde temos diversas condicionais, ou ocasiões, onde utiliza o mesmo algoritmo, com pequenas mudanças de estado.
Porém cai numa situação no meu dia a dia, em que é o seguinte:
Existe um método, chamado montarParametrosRequest, em determinado momento, ele chama um método para obter qual a política ele deve usar:
entradaPO.setPolitica(definePoliticaDeConsulta(vo));
Quando vamos ver este método definePoliticaDeConsulta, ele possui diversos IF/Else, com condicionais para colocar a String da política:
public static String definePoliticaDeConsulta(DadosConsultaVo vo) {
if (ePessoaFisica(vo)) {
return POLICITA_PF;
}
if (ePessoaJuridica(vo)) {
return POLICITA_PJ;
}
//... possui mais condicionais com casos para outras politicas
}
Pelo que entendi da teoria do Strategy, não daria para utilizar para esse caso, pois estamos montando um objeto, o que cairia no caso de padrões criacionais, já que não é um algoritmo que realiza um comportamento e sim monta parâmetros, estou correto? Ou da para utilizar o Strategy?
Desculpe caso esteja confuso, se precisar estou a disposição para dar mais informações, obrigado pela força!