Maurício,
Entendi perfeitamente os conceitos passados nesta aula, porém como existe a regra de valor de frete por cidades, travei no seguinte problema:
Resolvi criar a interface Cidade para implementar as classes Rio de Janeiro, São Paulo e etc.
Referente aos IFs da tabela de preços, consegui refatorar usando o pattern Chain of Responsability, onde Criei as classes MaiorQueMil e MaiorCincoMil realizando a primeira regra, se não fez, seto a próxima. (Não sei se essa foi a melhor opção)
A dúvida é, estou querendo refatorar dado uma Cidade e um Serviço de Entrega, retornar o valor do frete. Segue:
public class Correios implements ServicoDeEntrega {
public double para(Cidade cidade) {
if (cidade instanceof RioDeJaneiro)
return 10;
else if (cidade instanceof SaoPaulo)
return 15;
else
return 0;
}
}
public class FedEX implements ServicoDeEntrega {
@Override
public double para(Cidade cidade) {
if (cidade instanceof RioDeJaneiro)
return 50;
else if (cidade instanceof SaoPaulo)
return 40;
else
return 0;
}
}
Como fazer pra resolver esses IFs ? Qual melhor padão a utilizar?
Grato.