Fiquei com dúvida referente a este padrão principalmente ao final que é quando devo aplicar. Digamos que tenho um job que faz uma chamada ao banco retorna uma lista, em seguida chama o método abaixo, passando o orçamento e um imposto qualquer que venha na consulta.
public void RealizaCalculo(Orcamento orcamento, String imposto)
{
if( "ICMS".Equals(imposto) )
{
double icms = orcamento.Valor * 0.1;
Console.WriteLine(icms); // imprimirá 50.0
}
if( "ISS".Equals(imposto) )
{
double icms = orcamento.Valor * 0.1;
Console.WriteLine(icms); // imprimirá 50.0
}
}
Então o que eu faço é verificar o tipo do imposto para poder executar o cálculo daquele imposto apenas.. como não sei qual imposto vai vir...( dentro de uma lista finita é claro ex.: ICMS, ISS) Nesse caso o que identifica pra mim é apenas o nome do tipo do imposto.. como eu não sei qual o imposto vai vir acabo fazendo um if pra cada item..
O pattern Strategy é válido pra esse cenário? caso não tem algum outro que possa ser aplicado pra esse tipo de problema?