Padrão Strategy
Last updated
Last updated
Ao longo desse semestre, os tópicos serão semelhantes a esse, onde iremos apresentando um problema e uma descrição da solução por etapas. A medida que o assunto for mudando, o contexto dos problemas também mudam para facilitar o entendimento. Sintam-se a vontade para solicitar novas explicações sempre que necessário
Considere que você e sua equipe decidem criar uma aplicação de navegação, no estilo do Google Maps. Nessa aplicação você busca prover um planejamento de rotas, por diferentes meios (a pé, de carro, de bicicleta, de transporte público, etc.), como o exemplo mostrado abaixo, onde na parte superior esquerda ele oferece a opção de mudarmos o meio de transporte..
A primeira versão da aplicação podia apenas construir rotas sobre rodovias, para quem viaja/transita de carro. Vamos imaginar a construção de uma classe para realizar esse processamento. No método gerarRota
passamos dois objetos do tipo Ponto
e ele deverá nos retornar um objeto Rota
. Os detalhes desses objetos não são importantes pra compreensão do problema.
Porém, algum tempo depois do lançamento do aplicativo, você percebeu que nem todo mundo dirige em suas férias e que seus usuários estavam insatisfeitos com as opções disponíveis. Então com a próxima atualização você pretende adicionar uma opção de rotas de caminhada. Assim sendo, uma condicional foi feita.