Pular para o conteúdo principal

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

Arquitetura de SoftwarePadrões de projeto (Design Patterns)
Código
fc038469
Banca
FCC
Órgão
TRE-SP
Ano
2017
Nível
Médio
Cargo
Técnico Judiciário – Programação de Sistemas
Um Programador de Sistemas teve que desenvolver algumas aplicações utilizando padrões de projeto. Sua primeira necessidade foi utilizar um padrão para separar a construção de objetos complexos da sua representação, de forma que o mesmo processo de construção pudesse criar diferentes representações. A segunda necessidade foi o uso de um padrão para permitir que classes incompatíveis trabalhassem em conjunto, já que converte a interface de uma classe em outra, para atender às expectativas do cliente. Para atender suas necessidades, o Programador usou, correta e respectivamente, os padrões de projeto
  1. AFactory Method e Singleton.
  2. BBuilder e Abstract Factory.
  3. CBuilder e Adapter.
  4. DSingleton e Abstract Factory.
  5. EAdapter e Bridge.
Revelar gabarito e comentário

GabaritoC — Builder e Adapter.

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: Builder e Adapter

Gabarito: letra C. A primeira necessidade descreve o padrão Builder, que separa a construção de um objeto complexo de sua representação, permitindo que o mesmo processo de construção crie diferentes representações. A segunda necessidade descreve o padrão Adapter, que converte a interface de uma classe em outra esperada pelo cliente, permitindo que classes incompatíveis trabalhem em conjunto.

A banca cobra a distinção entre os padrões criacionais, estruturais e comportamentais do GoF. O Builder é um padrão criacional (foca na construção passo a passo de objetos complexos), enquanto o Adapter é um padrão estrutural (foca na adaptação de interfaces).

Alternativa A — ❌ Incorreta

Factory Method também é um padrão criacional, mas seu objetivo é definir uma interface para criar um objeto, delegando às subclasses a decisão de qual classe instanciar – não separa construção de representação. Singleton garante uma única instância, não atende a nenhuma das necessidades.

Alternativa B — ❌ Incorreta

Builder está correto para a primeira necessidade, mas Abstract Factory é um padrão para criar famílias de objetos relacionados sem especificar suas classes concretas, não para adaptar interfaces de classes incompatíveis.

Alternativa C — ✅ Correta ⟵ GABARITO

Builder atende exatamente à primeira descrição: "separar a construção de objetos complexos da sua representação, de forma que o mesmo processo de construção possa criar diferentes representações". Adapter atende à segunda: "permitir que classes incompatíveis trabalhassem em conjunto, já que converte a interface de uma classe em outra, para atender às expectativas do cliente".

Alternativa D — ❌ Incorreta

Singleton (criação de instância única) e Abstract Factory não se encaixam em nenhuma das duas necessidades.

Alternativa E — ❌ Incorreta

Adapter está correto para a segunda necessidade, mas Bridge separa uma abstração de sua implementação para que ambas possam variar independentemente, não se aplica à primeira descrição (que é Builder).

NÃO CAIA NESSA!

A banca pode confundir Builder com Factory Method (ambos criacionais) ou Adapter com Bridge (ambos estruturais). Lembre-se: Builder constrói objetos complexos passo a passo; Adapter adapta interfaces existentes. Bridge desacopla abstração da implementação.

Gabarito: letra C.

Link permanente: /questoes/fc038469