Pular para o conteúdo principal

Questão de Arquitetura de Software — Padrões de projeto (Design Patterns) — FCC 2015

Arquitetura de SoftwarePadrões de projeto (Design Patterns)
Código
fc026126
Banca
FCC
Órgão
TRT - 3ª Região (MG)
Ano
2015
Nível
Médio
Cargo
Técnico Judiciário - Área Tecnologia da Informação
Considere: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
  1. AFactory Method.
  2. BBuilder
  3. CPrototype.
  4. DAbstract Factory.
  5. ESingleton.
Revelar gabarito e comentário

GabaritoD — Abstract Factory.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Padrão Abstract Factory — características de criação de famílias de objetos

Gabarito: letra D (Abstract Factory). Os itens I a IV descrevem com exatidão o padrão Abstract Factory: o cliente interage com uma fábrica genérica (abstrata), que delega a criação dos objetos às fábricas concretas. O cliente não precisa saber qual fábrica concreta está em uso e novas fábricas podem ser adicionadas sem alterar o código cliente. É um padrão criacional do GoF que tem como objetivo criar famílias de objetos relacionados ou dependentes sem especificar suas classes concretas.

Alternativa A — ❌ Incorreta (Factory Method)

O Factory Method define uma interface para criar um único objeto, mas permite que subclasses decidam qual classe instanciar. A descrição fala de uma fábrica genérica que pode ser substituída por várias fábricas concretas, o que caracteriza uma família de produtos, não apenas a criação de um produto por herança.

Alternativa B — ❌ Incorreta (Builder)

O Builder é usado para construir objetos complexos passo a passo, separando a construção da representação. Não há o conceito de fábricas concretas intercambiáveis que criam famílias de objetos.

Alternativa C — ❌ Incorreta (Prototype)

O Prototype permite criar novos objetos a partir de um protótipo (clone), sem depender de classes concretas. Não envolve uma fábrica genérica nem a troca de fábricas concretas.

Alternativa D — ✅ Correta (Abstract Factory) ⟵ GABARITO

A descrição casa perfeitamente: a fábrica genérica (AbstractFactory) define a interface; as fábricas concretas (ConcreteFactory) implementam a criação de produtos concretos; o cliente usa apenas a interface abstrata, não precisando ser alterado quando novas fábricas são adicionadas. É exatamente o que dizem os itens I, II, III e IV.

Alternativa E — ❌ Incorreta (Singleton)

Singleton garante que uma classe tenha apenas uma instância e fornece um ponto global de acesso a ela. Não tem relação com criação de famílias de objetos nem com fábricas intercambiáveis.

PEGA ESSA DICA!

Para diferenciar Factory Method de Abstract Factory, lembre-se: Factory Method lida com a criação de um produto, delegando a subclasses a decisão de qual classe concreta instanciar. Já Abstract Factory lida com famílias de produtos, e o cliente é completamente desacoplado das fábricas concretas. Na prova, se a descrição mencionar "fábrica genérica", "fábrica concreta" e "família de objetos", a resposta é Abstract Factory.

Link permanente: /questoes/fc026126