O padrão de projeto que permite definir uma interface para c...

Próximas questões
Com base no mesmo assunto
Q2383449 Arquitetura de Software
O padrão de projeto que permite definir uma interface para criar objetos, mas deixa as subclasses decidirem a classe a ser instanciada, adiando a instanciação para cada subclasse, é o
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Olá, aluno! Vamos entender por que a alternativa A - Factory Method é a correta e analisar as demais opções.

O enunciado descreve um padrão de projeto que define uma interface para criar objetos, mas permite que as subclasses decidam qual classe será instanciada. Esse comportamento é característico do padrão de projeto Factory Method.

Para resolver essa questão, é importante conhecer os princípios dos principais padrões de projeto (Design Patterns) e como eles são aplicados.

Vamos agora justificar cada alternativa:

A - Factory Method: Este padrão permite definir uma interface para criar objetos, mas deixa que as subclasses decidam qual classe será instanciada. A ideia central é garantir que a criação de um objeto esteja desacoplada do seu uso, fornecendo uma interface para criar um objeto, mas deixando que as subclasses determinem qual classe concreta instanciar. Isso está perfeitamente alinhado com o enunciado da questão.

B - Template Method: Este padrão define o esqueleto de um algoritmo dentro de um método, transferindo alguns passos para subclasses. Ele permite que subclasses redefinam certos passos de um algoritmo sem mudar sua estrutura. Não se trata da criação de objetos, e sim da definição de um algoritmo ao qual algumas partes podem ser alteradas pelas subclasses.

C - Abstract Factory: Este padrão fornece uma interface para criar famílias de objetos relacionados ou dependentes sem especificar suas classes concretas. Diferente do Factory Method, que lida com a criação de um único objeto, a Abstract Factory lida com a criação de famílias de objetos. Embora também envolva a criação de objetos, o contexto é diferente do descrito no enunciado.

D - Chain of Responsibility: Este padrão permite que um pedido passe por uma cadeia de handlers (manipuladores). Cada handler decide se processa o pedido ou o passa para o próximo handler na cadeia. Esse padrão é voltado para o processamento de pedidos, não para a criação de objetos.

E - Facade: Este padrão fornece uma interface simplificada para um subsistema complexo. Ele agrupa várias interfaces em uma única interface, facilitando o uso do subsistema. Não está relacionado à criação de objetos nem à decisão de qual classe instanciar.

Espero que essa explicação tenha esclarecido por que o Factory Method é a alternativa correta e por que as outras opções são inadequadas para o enunciado da questão. Qualquer dúvida, estou à disposição para ajudar!

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

O padrão de projeto que corresponde à descrição fornecida é o padrão Factory Method.

No padrão Factory Method, uma interface é definida para criar objetos, mas as subclasses são responsáveis por decidir qual classe concreta deve ser instanciada.

O padrão Factory Method é útil quando você tem uma hierarquia de classes e deseja delegar a responsabilidade de criação de objetos para as subclasses, permitindo flexibilidade e extensibilidade no código.

GABARITO A

Factory Method: Esse padrão define uma interface para criar um objeto, mas deixa as subclasses decidirem qual classe instanciar.

Abstract Factory: Esse padrão fornece uma interface para criar famílias de objetos relacionados ou dependentes sem especificar suas classes concretas.

1. **Factory Method:** O Factory Method é um padrão de design criacional que define uma interface para criar um objeto, mas permite às subclasses decidirem qual classe instanciar. Isso permite que uma classe adie a instanciação para subclasses.

2. **Template Method:** O Template Method é um padrão de design comportamental que define o esqueleto de um algoritmo em uma operação, delegando alguns passos para subclasses. Ele permite que as subclasses redefinam certos passos de um algoritmo sem alterar sua estrutura geral.

3. **Abstract Factory:** O Abstract Factory é um padrão de design criacional que fornece uma interface para criar famílias de objetos relacionados ou dependentes sem especificar suas classes concretas. Ele permite que um cliente trabalhe com objetos de uma família sem conhecer suas implementações concretas.

4. **Chain of Responsibility:** O Chain of Responsibility é um padrão de design comportamental que permite que vários objetos possam tratar uma solicitação, evitando acoplamento entre o remetente da solicitação e os receptores. Cada receptor contém uma referência ao próximo receptor na cadeia.

5. **Facade:** O Facade é um padrão de design estrutural que fornece uma interface simplificada para um conjunto mais amplo de interfaces de um subsistema. Ele oculta a complexidade do sistema e fornece uma única interface de alto nível para o cliente.

Penso assim. O que a Método "Fábrica" faz? Ele fabrica... cria. E outros (distribuidores e compradores) decidem o que querem... cores, tamanhos... (ou seja(...) subclasses decidirem a classe a ser instanciada, adiando a instanciação para cada subclasse).

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo