Considere: I. A aplicação cliente interage com uma fábrica ...
I. A aplicação cliente interage com uma fábrica genérica de objetos.
II. Os objetos serão gerados efetivamente pela fábrica concreta que estiver sendo utilizada no momento.
III. A aplicação cliente não precisa ser configurada para interagir com cada uma das fábricas concretas.
IV. Novas fábricas concretas podem ser agregadas, alteradas ou retiradas do sistema sem necessidade de alterações na aplicação cliente.
Estas são características e propriedades do padrão de projeto
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
A alternativa correta é D - Abstract Factory.
Vamos analisar cada uma das opções para entender melhor:
Alternativa D - Abstract Factory
O padrão de projeto Abstract Factory é projetado para criar famílias de objetos relacionados ou dependentes sem especificar suas classes concretas. Ele permite que a aplicação cliente interaja com uma fábrica genérica de objetos, e os objetos reais são criados pela fábrica concreta que está sendo usada no momento. Isso significa que a aplicação cliente não precisa conhecer os detalhes das fábricas concretas, tornando o sistema mais flexível para adições, alterações ou remoções de fábricas concretas. Todas essas características e propriedades mencionadas no enunciado (I a IV) são atendidas pelo padrão Abstract Factory, confirmando que ele é a resposta correta.
Alternativas Incorretas
A - Factory Method
O padrão Factory Method define uma interface para criar um objeto, mas permite que as subclasses alterem o tipo de objeto que será criado. Ele é usado para delegar a responsabilidade de criação de objetos para subclasses. Embora semelhante, não oferece a mesma flexibilidade e não é responsável pela criação de famílias de objetos, como o Abstract Factory.
B - Builder
O padrão Builder é utilizado para construir um objeto complexo passo a passo. Ele permite que diferentes configurações do objeto sejam criadas através de um mesmo processo de construção. Não se encaixa nas características do enunciado, pois não está relacionado com a criação de famílias de objetos ou com a substituição de fábricas concretas.
C - Prototype
O padrão Prototype envolve a criação de novos objetos copiando um protótipo existente. É útil para evitar a criação de objetos de maneira direta através de seus construtores, o que pode ser caro em termos de recursos. Não se relaciona diretamente com a ideia de fábricas genéricas e concretas descritas no enunciado.
E - Singleton
O padrão Singleton garante que uma classe tenha somente uma instância e fornece um ponto de acesso global a ela. Este padrão é útil quando é necessário ter um único ponto de controle para certos tipos de recursos. Não tem relação com a criação de famílias de objetos ou a substituição de fábricas concretas.
Espero que essa explicação tenha ajudado a compreender melhor os padrões de projeto e a razão pela qual o Abstract Factory é a resposta correta para essa questão. Se você tiver mais dúvidas ou precisar de mais detalhes, sinta-se à vontade para perguntar!
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
A diferença entre Abstract Factory e Factory Method.
Abstract Factory a classe delega a responsabilidade aos objetos relacionados ou dependentes por meio de uma única interface.
Factory Method: Utiliza a herança para delegar responsabilidade aos objetos.
Para facilitar:
- Abastract Factory é relacionado aos objetos
- Factory Method é relacionado às classes
Ou seja, no primeiro a responsabilidade é passada aos objetos relacionados ou dependentes e no segundo a responsabilidade é delegada às subclasses por meio de herança.
https://brizeno.wordpress.com/padroes/
d-
abstract factory - criação de familias ou objetos dependentes, sem especificar classes concretas. é mais indicado quando o n° de objetos ficam constantes. Implementação é a interface comum do construtor
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo