Questão de Engenharia de Software — Padrões de Projeto (Engenharia de Software) — FUNDATEC 2023
Engenharia de Software›Padrões de Projeto (Engenharia de Software)
Código
qa541344
Banca
FUNDATEC
Órgão
IFC
Ano
2023
Cargo
PEBTT ( )
Considerando o contexto de padrões de projeto em engenharia de software, relacione a Coluna 1 à Coluna 2.
Coluna 1
1. Singleton.
2. Protótipo.
3. Adaptador.
4. Decorador.
Coluna 2
( ) Permite a adição de responsabilidades a um objeto dinamicamente.
( ) Define uma instância de uma classe a partir da qual outros objetos são criados.
( ) Garante que uma classe tenha exatamente uma instância, acessada globalmente.
( ) Converte a interface de uma classe em outra.
A ordem correta de preenchimento dos parênteses, de cima para baixo, é:
A4 – 2 – 1 – 3.
B4 – 1 – 2 – 3.
C3 – 2 – 1 – 4.
D3 – 1 – 2 – 4.
E3 – 1 – 4 – 2.
Revelar gabarito e comentário▾
GabaritoA — 4 – 2 – 1 – 3.
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 GoF: Singleton, Protótipo, Adaptador e Decorador
Gabarito: letra A (4 – 2 – 1 – 3). A questão pede a correlação entre quatro padrões de projeto clássicos do catálogo GoF e suas definições: Decorador (4) permite adicionar responsabilidades dinamicamente; Protótipo (2) cria novos objetos a partir de uma instância-modelo; Singleton (1) garante uma única instância global; e Adaptador (3) converte uma interface em outra. A sequência correta, de cima para baixo, é exatamente 4 – 2 – 1 – 3.
Os padrões de projeto (design patterns) são soluções gerais e reutilizáveis para problemas recorrentes no desenvolvimento de software. Eles não são código pronto, mas sim modelos (templates) que descrevem como resolver um problema em um determinado contexto. O catálogo clássico, proposto pelo "Gang of Four" (GoF) — Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides —, organiza 23 padrões em três categorias: criacionais, estruturais e comportamentais. Essa classificação é fundamental para entender o propósito de cada padrão e é exatamente o que a questão explora.
Vamos entender cada padrão cobrado:
Singleton (criacional): garante que uma classe tenha exatamente uma instância em todo o sistema e fornece um ponto de acesso global a ela. É usado, por exemplo, para conexões de banco de dados ou configurações globais.
Protótipo (criacional): permite criar novos objetos copiando uma instância existente (o protótipo), em vez de instanciar novas classes. É útil quando a criação de um objeto é custosa ou complexa.
Adaptador (estrutural): converte a interface de uma classe em outra interface que o cliente espera, permitindo que classes com interfaces incompatíveis trabalhem juntas. Funciona como um "tradutor" entre interfaces.
Decorador (estrutural): permite adicionar responsabilidades a um objeto dinamicamente, de forma flexível, sem alterar sua estrutura. É uma alternativa à herança para estender funcionalidades.
A pegadinha da questão está em confundir o Protótipo com o Singleton. O Protótipo cria novos objetos a partir de um modelo (instância), enquanto o Singleton restringe a criação a uma única instância. Outra confusão comum é entre Adaptador e Decorador: o Adaptador muda a interface (torna compatível), enquanto o Decorador adiciona comportamento (estende funcionalidades).
Para fixar, veja a comparação:
Padrão
Categoria
Propósito principal
Singleton
Criacional
Garantir uma única instância global
Protótipo
Criacional
Criar objetos copiando um modelo
Adaptador
Estrutural
Converter uma interface em outra
Decorador
Estrutural
Adicionar responsabilidades dinamicamente
Guarde essa distinção entre criar (criacionais), estruturar (estruturais) e comportar (comportamentais): é o critério que separa as alternativas desta questão.
Padrões GoF
1Criacionais
Singleton
única instância global
Protótipo
cria copiando um modelo
2Estruturais
Adaptador
converte interface
Decorador
adiciona responsabilidades
LEVEL · soulevel.com.br
Alternativa A — ✅ Correta ⟵ GABARITO
A sequência 4 – 2 – 1 – 3 corresponde exatamente à correlação correta: Decorador (4) adiciona responsabilidades dinamicamente; Protótipo (2) define uma instância-modelo para criar outros objetos; Singleton (1) garante uma única instância global; e Adaptador (3) converte a interface de uma classe em outra. Cada padrão está associado à sua definição canônica.
Alternativa B — ❌ Incorreta
A sequência 4 – 1 – 2 – 3 troca o Protótipo (2) pelo Singleton (1) na segunda posição. A definição "Define uma instância de uma classe a partir da qual outros objetos são criados" descreve o Protótipo, não o Singleton. O Singleton garante uma única instância, não serve de modelo para criar outras.
Alternativa C — ❌ Incorreta
A sequência 3 – 2 – 1 – 4 começa com o Adaptador (3) na primeira posição, mas a definição "Permite a adição de responsabilidades a um objeto dinamicamente" é do Decorador (4). O Adaptador converte interfaces, não adiciona responsabilidades.
Alternativa D — ❌ Incorreta
A sequência 3 – 1 – 2 – 4 também começa com o Adaptador (3) na primeira posição, cometendo o mesmo erro da alternativa C. Além disso, coloca o Singleton (1) na segunda posição, onde deveria estar o Protótipo (2).
Alternativa E — ❌ Incorreta
A sequência 3 – 1 – 4 – 2 erra ao colocar o Adaptador (3) na primeira posição e o Decorador (4) na terceira. A definição "Permite a adição de responsabilidades a um objeto dinamicamente" é do Decorador, que deveria ocupar a primeira posição.
NÃO CAIA NESSA!
A banca explora a confusão entre padrões criacionais e estruturais. O candidato que não domina a diferença entre Protótipo (criar copiando) e Singleton (criar uma única vez), ou entre Adaptador (converter interface) e Decorador (adicionar comportamento), tende a inverter as posições. Lembre-se: o Protótipo é um "molde" para criar novos objetos; o Singleton é uma "porta única" de acesso.
PEGA ESSA DICA!
Para resolver questões de correlação de padrões GoF, classifique cada padrão mentalmente em criacional, estrutural ou comportamental e associe a definição à categoria. Isso reduz as opções e evita trocas. Pratique com os 23 padrões do catálogo, focando nos mais cobrados: Singleton, Factory Method, Abstract Factory, Prototype, Builder (criacionais); Adapter, Decorator, Facade, Proxy (estruturais); Strategy, Observer, Template Method, Command (comportamentais).