Questão FC373905
Considere o seguinte caso hipotético: Um Analista de um Tribunal Regional do Trabalho está criando uma aplicação de gerenciamento de logística para distribuição de processos. A pri
Padrões de Projeto (Engenharia de Software)
FCC · 2023
Considere o seguinte caso hipotético:
Um Analista de um Tribunal Regional do Trabalho está criando uma aplicação de gerenciamento de logística para distribuição de processos. A primeira versão da sua aplicação pode lidar apenas com a distribuição física feita por meio de pessoas, portanto, a maior parte do código fica dentro da classe Entregador. Depois de um tempo, a aplicação se torna bastante utilizada e ele recebe frequentemente várias solicitações de outros departamentos do órgão para incorporar. na aplicação, a logística de distribuição dos processos digitalizados por meio do computador. A adição de uma nova classe (meio) de distribuição ao programa causa um problema porque adicionar uma nova classe ao programa não é tão simples se o restante do código já estiver acoplado às classes existentes. Atualmente, a maior parte do código é acoplada à classe Entregador. Adicionar Computador à aplicação exigiria alterações em toda a base de código. Além disso, se mais tarde ele decidir adicionar outro meio de distribuição à aplicação, provavelmente precisará fazer todas essas alterações novamente. Como resultado, ele terá um código bastante sujo, repleto de condicionais que alteram o comportamento da aplicação, dependendo da classe de objetos de meio de distribuição.
Uma solução de melhoria para deixar o código mais limpo e manutenível é usar o padrão de projeto
- criacional Bridge.
- comportamental Composite.
- criacional Factory Method.
- comportamental lterator.
- estrutural Builder.
Mostrar resposta e comentário
Gabarito
Certo
Comentário do professor
Factory Method é um padrão criacional que resolve o problema de código fortemente acoplado à classe concreta Entregador ao deslocar a responsabilidade de criação de objetos para um método fábrica.
Em vez de instanciar diretamente classes como Entregador ou Computador, a aplicação chama um método abstrato (o Criador) que retorna um Produto genérico. Subclasses concretas sobrescrevem esse método para retornar a implementação específica do meio de distribuição.
Com isso, o restante do código depende de abstrações, reduzindo o acoplamento e evitando condicionais espalhadas. Novos meios podem ser adicionados apenas criando novas subclasses de criador, preservando o princípio aberto/fechado e melhorando a manutenção e extensibilidade do sistema.
Conteúdo do catálogo FC Concursos · Atualizado em