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
fc024432
Banca
FCC
Órgão
TRT - 15ª Região (SP)
Ano
2015
Nível
Superior
Cargo
Analista Judiciário – Tecnologia da Informação
Os padrões de projeto tornam mais fácil reutilizar projetos e arquiteturas bem sucedidas. Atualmente existem diversos padrões de projetos conforme abaixo:I. Fornece uma interface para a criação de famílias de objetos relacionados ou dependentes sem especificar suas classes concretas. II. Converte a interface de uma classe em outra interface esperada pelos clientes permitindo que certas classes trabalhem em conjunto, pois de outra forma, seria impossível por causa de suas interfaces incompatíveis. III. Fornece uma maneira de acessar sequencialmente os elementos de uma agregação de objetos sem expor sua representação subjacente. Os padrões de projeto apresentados em I, II e III são, respectivamente,
AFaçade, Builder e Mediator.
BAbstract Factory, Adapter e Iterator.
CFaçade, Adapter e Interpreter.
DSingleton, Builder e Mediator.
EAbstract Factory, Prototype e Iterator.
Revelar gabarito e comentário▾
GabaritoB — Abstract Factory, Adapter e Iterator.
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ões de projeto (Design Patterns)
Gabarito: letra B. A descrição I é do padrão criacional Abstract Factory, a descrição II é do padrão estrutural Adapter, e a descrição III é do padrão comportamental Iterator. Exatamente essa sequência está na alternativa B.
A banca testa o conhecimento dos padrões GoF mais comuns, exigindo a associação correta entre a definição e o nome do padrão. Essas definições são clássicas e estão no livro da Gang of Four.
NÃO CAIA NESSA!
A banca costuma trocar padrões de categorias diferentes (criacional vs. estrutural vs. comportamental) para confundir. Por exemplo, Abstract Factory (criação) é confundido com Façade (estrutura), e Iterator (comportamental) com Interpreter (comportamental, mas de propósito diferente). Memorize a função-chave de cada um: Abstract Factory = fábrica de famílias; Adapter = adaptação de interface; Iterator = percorrer coleção.
Padrão
Categoria
Descrição
Abstract Factory
Criacional
Fornece uma interface para a criação de famílias de objetos relacionados ou dependentes sem especificar suas classes concretas
Adapter
Estrutural
Converte a interface de uma classe em outra interface esperada pelos clientes, permitindo que classes trabalhem juntas apesar de interfaces incompatíveis
Iterator
Comportamental
Fornece uma maneira de acessar sequencialmente os elementos de uma agregação de objetos sem expor sua representação subjacente
Padrões GoF
1Criacionais
Abstract Factory: fábrica de famílias
Builder: construção passo a passo
Singleton: instância única
2Estruturais
Adapter: converte interface
Façade: interface simplificada
3Comportamentais
Iterator: acesso sequencial
Mediator: coordena comunicação
Interpreter: gramática/linguagem
LEVEL · soulevel.com.br
Alternativa A — ❌ Incorreta
Façade (padrão estrutural) não corresponde à descrição I (que pede criação de família de objetos), Builder (criacional) não se encaixa na descrição II (conversão de interface), e Mediator (comportamental) não atende à descrição III (acesso sequencial). Portanto, está errada.
Alternativa B — ✅ Correta ⟵ GABARITO
Abstract Factory: "Fornece uma interface para a criação de famílias de objetos relacionados ou dependentes sem especificar suas classes concretas."
Adapter: "Converte a interface de uma classe em outra interface esperada pelos clientes, permitindo que classes trabalhem juntas apesar de interfaces incompatíveis."
Iterator: "Fornece uma maneira de acessar sequencialmente os elementos de uma agregação de objetos sem expor sua representação subjacente."
Essa combinação é exata.
Alternativa C — ❌ Incorreta
O primeiro item (Façade) é um padrão estrutural que fornece uma interface simplificada, não uma fábrica de objetos. O terceiro (Interpreter) é usado para gramáticas, não para percorrer coleções. Apenas o segundo (Adapter) está correto.
Alternativa D — ❌ Incorreta
Singleton garante uma única instância, não se aplica à descrição I. Builder constrói objetos complexos, não é a descrição II. Mediator coordena comunicação entre objetos, não é a descrição III.
Alternativa E — ❌ Incorreta
O segundo padrão (Prototype) cria objetos por clonagem, não converte interfaces. O primeiro e o terceiro estão corretos (Abstract Factory e Iterator), mas o erro no segundo invalida a alternativa.