Observe a implementação em Java do método abaixo.
public float calcularImpos(int regiao, float valorBruto){
float taxa = 0;
switch (regiao) {
case 1: //SUDESTE
taxa = .12f; //12%
break;
case 2: // (NORDESTE
taxa = ,10f; //10%
break;
}
return valorBruto * taxa;
}
A operação calcularImposto retorna o valor do imposto em função dos seus dois parâmetros: regiao e valorBruto. A desvantagem dessa abordagem é que ela codifica de maneira fixa e rígida o algoritmo para cálculo do imposto na classe que o utiliza. Se o desejado for estender a funcionalidade dessa operação para cobrir outras regiões do país, será necessário alterá-la, o que impediria o reuso desse componente. Padrões de projeto mostram como construir software flexível e reutilizável. No caso citado, qual padrão pode ser utilizado para eliminar o comando condicional switch e desacoplar calcularimposto da sua implementação?