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
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,
  1. AFaçade, Builder e Mediator.
  2. BAbstract Factory, Adapter e Iterator.
  3. CFaçade, Adapter e Interpreter.
  4. DSingleton, Builder e Mediator.
  5. 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.

Gabarito: letra B.

Link permanente: /questoes/fc024432