Questão de Arquitetura de Software — Padrões de projeto (Design Patterns) — FCC 2015
Arquitetura de Software›Padrões de projeto (Design Patterns)
Código
fc023708
Banca
FCC
Órgão
TRE-PB
Ano
2015
Nível
Médio
Cargo
Técnico Judiciário - Área Apoio Especializado - Programação de Sistemas
Um técnico deseja usar um padrão de projeto de criação que permita que as subclasses da aplicação possam variar. Este padrão deverá ser focado no processo de instanciação e encapsular a criação de objetos, deixando as subclasses decidirem quais objetos criar e garantindo assim, baixo acoplamento. Para conseguir o que deseja, o técnico selecionou o padrão de projeto que possui uma classe abstrata Creator que define um método especifico para criação de objetos. Trata-se do padrão:
APrototype.
BAdapter.
CFactory Method.
DComposite.
EFaçade.
Revelar gabarito e comentário▾
GabaritoC — Factory Method.
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”.
Factory Method — Padrão de Projeto Criacional
Gabarito: letra C. O Factory Method é um padrão de projeto criacional que define uma interface (classe abstrata Creator) com um método para criar objetos, permitindo que as subclasses decidam qual classe concreta instanciar. Isso encapsula o processo de instanciação e promove baixo acoplamento, exatamente como descrito na questão.
O enunciado descreve fielmente o padrão Factory Method: uma classe abstrata Creator com um método específico para criação de objetos, delegando às subclasses a decisão de quais objetos criar. Esse padrão pertence ao grupo dos padrões de criação, que abstraem o processo de instanciação e tornam o sistema independente de como seus objetos são criados.
Alternativa A — ❌ Incorreta
O Prototype também é um padrão criacional, mas não possui uma classe Creator com método abstrato para criação. No Prototype, os objetos são clonados a partir de um protótipo, sem que subclasses decidam qual classe instanciar. A descrição do enunciado não se encaixa.
Alternativa B — ❌ Incorreta
Adapter é um padrão estrutural, não criacional. Ele converte a interface de uma classe em outra interface esperada pelos clientes, permitindo que classes incompatíveis trabalhem juntas. Não trata de criação de objetos nem possui método de criação.
Alternativa C — ✅ Correta ⟵ GABARITO
O Factory Method é exatamente o padrão descrito: define uma classe abstrata Creator com um método fábrica (factory method) para criar objetos, deixando as subclasses decidirem qual classe concreta instanciar. Isso encapsula a criação, promove baixo acoplamento e permite que o sistema varie independentemente de como os objetos são criados.
Alternativa D — ❌ Incorreta
Composite é um padrão estrutural que compõe objetos em estruturas de árvore para representar hierarquias partes-todo. Não tem relação com criação de objetos nem com método de instanciação.
Alternativa E — ❌ Incorreta
Façade (Fachada) é um padrão estrutural que fornece uma interface simplificada para um subsistema complexo. Não envolve criação de objetos nem subclasses decidindo o que instanciar.
PEGA ESSA DICA!
Para identificar o Factory Method na prova, foque nas palavras-chave: "classe abstrata Creator", "método de criação", "subclasses decidem qual classe instanciar". Lembre-se de que ele é um padrão criacional, enquanto Adapter, Composite e Façade são estruturais. O Prototype também é criacional, mas seu mecanismo é clonagem, não método fábrica.