Pular para o conteúdo principal

Questão de Engenharia de Software — Padrões de Projeto (Engenharia de Software) — VUNESP 2025

Engenharia de SoftwarePadrões de Projeto (Engenharia de Software)
Código
vu222962
Banca
VUNESP
Órgão
TJ SP
Ano
2025
Cargo
AnaSistJ ( )

Considerando os Serviços de Integração da Plataforma Digital do PDPJ-Br, optou-se por utilizar os chamados padrões de projeto  (design patterns). 

Dessa forma, considerando tais padrões de projeto, há uma classificação que apresenta os três tipos mais utilizados, de acordo com sua finalidade, a saber, padrões

  1. Aabstratos, concretos e transversais.
  2. Bpreliminares, intermediários e finais.
  3. Cde criação, estruturais e comportamentais.
  4. Dinternos, externos e básicos.
  5. Einiciais, finais e participativos.
Revelar gabarito e comentário

GabaritoC — de criação, estruturais e comportamentais.

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 C. Os padrões de projeto, conforme a classificação clássica do livro "Design Patterns" (GoF — Gang of Four), são divididos em três categorias de acordo com sua finalidade: padrões de criação (creational), estruturais (structural) e comportamentais (behavioral). Essa é a taxonomia mais difundida e cobrada em concursos, e é exatamente o que a alternativa C apresenta.

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 descrições abstratas de como resolver um problema de design em diferentes contextos. A obra seminal de Erich Gamma e colegas (o famoso "Livro GoF") catalogou 23 padrões e os organizou em três famílias principais, justamente com base no que cada padrão faz — ou seja, sua finalidade.

Vamos entender cada uma dessas famílias:

  • Padrões de Criação (Creational): lidam com o processo de criação de objetos, abstraindo a forma como eles são instanciados. Em vez de criar objetos diretamente com new, o padrão encapsula a lógica de criação. Exemplos clássicos: Singleton (garante uma única instância), Factory Method (define uma interface para criar objetos, mas deixa as subclasses decidirem qual classe instanciar) e Abstract Factory (cria famílias de objetos relacionados sem especificar suas classes concretas).

  • Padrões Estruturais (Structural): tratam da composição de classes e objetos para formar estruturas maiores e mais flexíveis. Eles ajudam a definir como as classes e objetos se relacionam para formar sistemas mais complexos. Exemplos: Adapter (converte a interface de uma classe em outra interface que o cliente espera), Decorator (adiciona responsabilidades a um objeto dinamicamente) e Composite (compõe objetos em estruturas de árvore para representar hierarquias parte-todo).

  • Padrões Comportamentais (Behavioral): focam na comunicação e interação entre objetos, definindo como eles distribuem responsabilidades e colaboram entre si. Exemplos: Observer (define uma dependência um-para-muitos entre objetos, de modo que quando um objeto muda de estado, todos os seus dependentes são notificados), Strategy (define uma família de algoritmos, encapsula cada um deles e os torna intercambiáveis) e Command (encapsula uma solicitação como um objeto, permitindo parametrizar clientes com diferentes solicitações).

A pegadinha desta questão é que a banca tenta confundir o candidato com classificações que não existem na literatura clássica de padrões de projeto. Alternativas como "abstratos, concretos e transversais" ou "preliminares, intermediários e finais" parecem plausíveis para quem não domina o assunto, mas não correspondem a nenhuma classificação consagrada. A classificação por finalidade (criação, estrutura e comportamento) é a mais importante e a que cai em provas.

Guarde essa tríade: criação (como os objetos são criados), estrutura (como as classes/objetos são compostos) e comportamento (como os objetos interagem). É exatamente esse critério que separa a alternativa correta das demais.

Alternativa A — ❌ Incorreta

"Abstratos, concretos e transversais" não é uma classificação de padrões de projeto. Esses termos não aparecem na literatura de design patterns. "Abstrato" e "concreto" são conceitos de orientação a objetos (classes abstratas vs. classes concretas), mas não categorizam padrões de projeto. "Transversal" é um termo usado em programação orientada a aspectos (cross-cutting concerns), mas não se aplica à classificação de padrões.

Alternativa B — ❌ Incorreta

"Preliminares, intermediários e finais" também não existe. Essa nomenclatura lembra mais fases de um processo (como as fases de um projeto ou de um ciclo de vida) do que categorias de padrões de projeto. Não há nenhum padrão de projeto classificado como "preliminar" ou "final" na literatura.

Alternativa C — ✅ Correta ⟵ GABARITO

Esta é a classificação clássica do GoF (Gang of Four). Os padrões de projeto são divididos em de criação (lidam com a instanciação de objetos), estruturais (lidam com a composição de classes e objetos) e comportamentais (lidam com a interação e comunicação entre objetos). É a resposta correta.

Alternativa D — ❌ Incorreta

"Internos, externos e básicos" não é uma classificação reconhecida de padrões de projeto. Esses termos podem lembrar conceitos de outras áreas (como arquitetura de software ou programação), mas não categorizam os design patterns do GoF.

Alternativa E — ❌ Incorreta

"Iniciais, finais e participativos" também não existe na literatura de padrões de projeto. Essa nomenclatura parece inventada pela banca para confundir o candidato, misturando termos que não têm relação com a classificação por finalidade.

NÃO CAIA NESSA!

A banca aposta que o candidato vai se confundir com termos que parecem técnicos, mas não existem na literatura de padrões de projeto. "Abstratos", "concretos", "internos", "externos" — tudo isso soa plausível, mas a única classificação consagrada é a do GoF: criação, estrutura e comportamento. Memorize essa tríade e você elimina qualquer alternativa inventada na hora da prova.

PEGA ESSA DICA!

Para fixar, associe cada categoria a um exemplo clássico: Singleton (criação — controla a instância), Adapter (estrutural — adapta interfaces) e Observer (comportamental — notifica mudanças). Se a alternativa trouxer qualquer outro trio de nomes, desconfie imediatamente.

Gabarito: letra C

Link permanente: /questoes/vu222962