Questão nº 24
Questão de Conhecimentos Específicos · FCC TRF4 2025 (nº 24)
Uma equipe de desenvolvimento está criando uma aplicação que precisa gerar diferentes tipos de relatórios (PDF, Excel ou HTML). Cada tipo de relatório requer um processo de construção complexo e específico. Nesse cenário, o padrão de projeto criacional da Gang of Four (GoF) mais adequado para encapsular a criação de objetos complexos, permitindo a construção de diferentes representações e facilitando a adição de novos tipos de objetos sem alterar o código existente é o
- ABuilder, que separa a construção de um objeto complexo de sua representação, permitindo que o mesmo processo de construção crie diferentes representações. (alternativa correta)
- BPrototype, que cria novos objetos copiando uma instância existente.
- CFactory Method, que define uma interface para criar um objeto, mas permite às subclasses decidirem qual classe instanciar.
- DSingleton, que garante que uma classe tenha apenas uma instância e fornece um ponto global de acesso a ela.
- EObject Pool, que mantém um conjunto de objetos prontos para uso, evitando o custo de criação repetida.
Resposta comentada
Gabarito Alternativa A
Padrões criacionais são como receitas prontas para criar objetos de forma flexível e controlada, evitando problemas comuns na criação direta de objetos e facilitando a manutenção do código.
- (A) Correta: O padrão Builder (Construtor) é ideal para este cenário. Ele separa a lógica de construção de um objeto complexo (como um relatório com muitas partes e formatações) de sua representação final. Isso significa que o mesmo processo de construção (a sequência de passos para montar o relatório) pode ser usado para gerar diferentes formatos (PDF, Excel, HTML) simplesmente trocando o "construtor" específico. Ele encapsula a complexidade da criação e permite adicionar novos tipos de relatórios (novos construtores) sem modificar o código que orquestra a construção.
- (B) Incorreta: O padrão Prototype (Protótipo) cria novos objetos copiando uma instância existente. Embora útil para criar muitos objetos semelhantes de forma eficiente, ele não aborda a complexidade do processo de construção de um objeto ou a necessidade de diferentes representações a partir de um mesmo processo.
- (C) Incorreta: O padrão Factory Method (Método Fábrica) define uma interface para criar um objeto, mas permite que as subclasses decidam qual classe instanciar. Ele é excelente para criar diferentes tipos de objetos (por exemplo, uma fábrica que cria relatórios PDF ou uma que cria relatórios Excel), mas não gerencia a complexidade interna da construção de um único objeto ou a capacidade de um mesmo processo de construção gerar diferentes representações do mesmo objeto. A armadilha aqui é que ele parece resolver a criação de diferentes tipos, mas não lida com a complexidade da construção passo a passo ou com a ideia de diferentes representações a partir da mesma sequência de passos.
- (D) Incorreta: O padrão Singleton (Instância Única) garante que uma classe tenha apenas uma instância e fornece um ponto global de acesso a ela. Não tem relação com a criação complexa de múltiplos objetos ou diferentes representações.
- (E) Incorreta: O padrão Object Pool (Piscina de Objetos) mantém um conjunto de objetos prontos para uso para evitar o custo de criação repetida. Ele foca na otimização de recursos e desempenho, não na complexidade do processo de construção ou na geração de diferentes representações.
Fonte: FCC TRF4 2025 Analista Judiciário - Área Apoio Especializado - Especialidade Análise de Sistemas de Informação (Caderno Tipo 001). Reproduzida para fins de estudo.