Pular para o conteúdo principal

Questão de Engenharia de Software — Refatoração — FGV 2023

Engenharia de SoftwareRefatoração
Código
fg071491
Banca
FGV
Órgão
TCE-SP
Ano
2023
Nível
Superior
Cargo
Agente da Fiscalização - TI
Marcos está efetuando a manutenção de um sistema e notou que em diversos pontos são efetuadas chamadas HTTP para diferentes servidores, utilizando configurações específicas. Ele resolveu refatorar o código, criando uma classe que oferece métodos para cada elemento da configuração, os quais podem ser combinados para gerar um conector personalizado para cada servidor acessado.Adotando essa abordagem, Marcos aumentou o reuso de processos intermediários na construção de objetos complexos, de acordo com o padrão:
  1. ASingleton;
  2. BMediator;
  3. CBuilder;
  4. DObserver;
  5. EChain of Responsibility.
Revelar gabarito e comentário

GabaritoC — Builder;

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Refatoração e Padrões de Projeto: Builder

Gabarito: letra C. A situação descrita — criação de uma classe para gerar conectores personalizados pela combinação de métodos de configuração — é exatamente o objetivo do padrão Builder: separar a construção de um objeto complexo de sua representação, permitindo reutilizar o processo de construção intermediário para obter diferentes resultados.

O padrão Builder é um padrão criacional que permite construir objetos complexos passo a passo. O cliente (Director) utiliza um Builder que fornece métodos para definir partes do objeto, e ao final chama um método para obter o objeto construído. A questão menciona "aumentou o reuso de processos intermediários na construção de objetos complexos", que é a essência do Builder.

Alternativa A — ❌ Incorreta

O padrão Singleton garante uma única instância de uma classe, não está relacionado com construção de objetos complexos passo a passo.

Alternativa B — ❌ Incorreta

Mediator define um objeto que encapsula a interação entre objetos, não foca na construção de objetos.

Alternativa C — ✅ Correta ⟵ GABARITO

Builder permite criar diferentes representações de um objeto complexo usando o mesmo processo de construção.

Alternativa D — ❌ Incorreta

Observer define uma dependência um-para-muitos, notificando observadores sobre mudanças de estado, não sobre construção.

Alternativa E — ❌ Incorreta

Chain of Responsibility permite passar uma solicitação ao longo de uma cadeia de handlers, não auxilia na construção de objetos.

Conclusão: Portanto, a alternativa que descreve corretamente o padrão utilizado é a letra C (Builder).

Link permanente: /questoes/fg071491