← Questões de Engenharia de Software

Engenharia de Software · FGV · 2023

Questão comentada de Engenharia de Software

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:

Gabarito: C

A questão descreve um cenário em que você precisa montar objetos complexos a partir de partes/configurações menores, permitindo combinar etapas de construção para criar uma versão personalizada para cada servidor. Isso é a cara do padrão Builder: separar a forma de construir do objeto final, facilitando reuso dos passos intermediários e deixando a montagem mais organizada. No Builder, em vez de ter um construtor gigante e cheio de parâmetros, você cria uma classe ou conjunto de métodos que vão montando o objeto passo a passo. Assim, o mesmo processo de construção pode gerar variações diferentes do produto final. É exatamente o que o enunciado fala quando menciona "métodos para cada elemento da configuração" que podem ser combinados. Na prática, isso aparece muito quando a criação do objeto exige várias configurações opcionais ou uma sequência de montagem mais trabalhosa. O ganho é clareza, reutilização e menor acoplamento entre quem monta e o que é montado. Em concursos, quando o texto fala em construção de objetos complexos com etapas reaproveitáveis, desconfie de Builder quase automaticamente. Por isso, o gabarito C está correto: o padrão Builder é usado para construir um objeto complexo passo a passo, reaproveitando processos intermediários de montagem e permitindo configurações diferentes para cada necessidade.

Continue treinando

Questões relacionadas