O padrão de projeto que tem como finalidade separar a const...
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
A alternativa correta é B - Builder.
Vamos discutir detalhadamente o tema da questão e as alternativas:
O padrão de projeto Builder é utilizado para separar a construção de um objeto complexo de sua representação. O objetivo é que o mesmo processo de construção possa criar diferentes representações. Ele é especialmente útil quando a construção de um objeto envolve múltiplas etapas ou configurações que podem variar, mas que ainda devem seguir uma estrutura determinada.
Para resolver a questão, é necessário conhecer as definições e finalidades de alguns dos principais padrões de projeto de software. Vamos analisar cada uma das alternativas:
A - Abstract Factory: Este padrão de projeto é usado para criar famílias de objetos relacionados ou dependentes sem especificar suas classes concretas. Ele define uma interface para criar objetos, mas a responsabilidade da criação é delegada a subclasses. Embora seja útil para a criação de objetos, não se encaixa na definição de separar construção de objetos complexos de suas representações.
B - Builder: Como mencionado, o Builder é o padrão que permite que o mesmo processo de construção possa criar diferentes representações de um objeto. Ele é ideal para a construção de objetos complexos passo a passo e atende perfeitamente ao enunciado da questão.
C - Composite: O padrão Composite é utilizado para tratar objetos individuais e composições de objetos de maneira uniforme. Ele compõe objetos em estruturas de árvore para representar hierarquias parte-todo. Este padrão facilita a manipulação de coleções de objetos de modo que eles possam ser tratados de maneira uniforme. Não é o padrão que separa a construção de objetos complexos de suas representações.
D - Factory Method: Esse padrão define uma interface para criar um objeto, mas permite que as subclasses alterem o tipo de objeto que será criado. Ele é útil para delegar a criação de objetos a subclasses, mas não aborda a separação entre a construção e a representação de objetos complexos.
E - Prototype: O padrão Prototype cria novos objetos clonando uma instância existente. Ele é útil para a criação de objetos a partir de um protótipo, mas não se relaciona diretamente com a separação da construção de um objeto complexo de sua representação.
Com base nessa análise, podemos concluir que a alternativa correta é B - Builder, pois é o único padrão que atende diretamente à descrição fornecida no enunciado da questão.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
Builder é um padrão de projeto de software criacional que permite a separação da construção de um objeto complexo da sua representação, de forma que o mesmo processo de construção possa criar diferentes representações.
https://pt.wikipedia.org/wiki/Builder
Usando comentário anterior:
Factory Method - Subclasses decidem qual classe instanciar.
Abstract Factory: Criação de família, sem especificar suas classes concretas.
Builder: Separa a construção do objeto complexo da sua representação.
Prototype- objetos por copia de uma instancia/ clonagem
composite - reconhece partes / todo das hierarquias. Clientes consideram múltiplos objetos atômicos e composites uniformemente. Possui interface comum para composites e átomos em superclasse e múltiplas implementações.
Imagine que você está montando um sanduíche. Existem várias opções de pão, recheio e molho, e você pode criar combinações infinitas.
Opção A: Escrever um manual gigante com todas as combinações possíveis. Seria trabalhoso e difícil de atualizar.
Opção B: Usar um "construtor" de sanduíches! Você escolhe o pão, o recheio e o molho, e o construtor monta o sanduíche para você. Essa é a ideia do padrão Builder, que você escolhe!
O padrão Builder é ideal para quando você precisa construir objetos complexos com várias opções de configuração. Ele ajuda a organizar o código, aumentar a flexibilidade e facilitar a reutilização.
Pense em um "construtor" que monta o objeto com base nos seus ingredientes.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo