

Seu próximo nível começa aqui
Seu desenvolvimento não pode ter limites. Garanta sua Assinatura Ilimitada e libere uma preparação completa com os melhores professores do Brasil.
Um antigo sistema usado pelo Ipea para produzir gráficos socioeconômicos dos estados e municípios brasileiros é composto pelas seguintes classes:

Esse design original atendia bem às necessidades de geração de gráficos. Com o passar do tempo, entretanto, surgiram novas demandas sobre dados dos municípios, o que obrigou os desenvolvedores a inserir novas operações na classe Municipio. Essas mudanças produziram as seguintes alterações no design original:

Essas alterações trariam alguns efeitos colaterais, pois, como o acesso aos dados de um município é feito por meio de operações definidas na classe Estado, quanto mais solicitações sobre os municípios houver, maior será o número de operações inseridas na classe Estado, com o único intuito de prover dados sobre os municípios localizados nesses estados. Sendo assim, os desenvolvedores do Ipea refatoraram o código existente e produziram o seguinte design:

A partir de então, as solicitações de dados sobre os municípios para a geração de gráficos passaram a ser feitas diretamente aos objetos da classe Municipio, sem a intermediação da classe Estado.
Que refatoração foi aplicada?
Hide Delegate
Remove Middle Man
Replace Data Value with Object
Duplicate Observed Data
Decomposing Methods