Pular para o conteúdo principal

Questão de Arquitetura de Software — Padrões de projeto (Design Patterns) — CESPE / CEBRASPE 2026

Arquitetura de SoftwarePadrões de projeto (Design Patterns)
Código
ce228775
Banca
CESPE / CEBRASPE
Órgão
TCE-MG
Ano
2026
Nível
Superior
Cargo
Analista de Controle Externo - Especialidade: Ciência da Computação
Um grupo de especialistas estava desenvolvendo um sistema de cadastro de magistrados e servidores. Durante uma análise, perceberam que há diversas formas de validar dados e que novas regras podem surgir frequentemente. Para evitar que o código da classe principal sofra alterações constantes, o grupo desenvolvedor decidiu encapsular as regras de validação em classes separadas e permitir que o sistema troque dinamicamente o método de validação usado.A partir da situação hipotética precedente, é correto afirmar que o padrão de projeto mais adequado para essa solução é o
  1. Aobserver.
  2. Bsingleton.
  3. Cstrategy.
  4. Dcomposite.
  5. Eprototype.
Revelar gabarito e comentário

GabaritoC — strategy.

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: Strategy

Gabarito: letra C. O padrão Strategy é a solução mais adequada para a situação descrita, pois permite encapsular algoritmos (regras de validação) em classes separadas e torná-los intercambiáveis dinamicamente, sem modificar o código da classe principal. Isso é exatamente o que o enunciado propõe: encapsular as regras de validação em classes separadas e permitir a troca dinâmica do método de validação.

O padrão Strategy define uma família de algoritmos, encapsula cada um deles e os torna intercambiáveis. Ele permite que o algoritmo varie independentemente dos clientes que o utilizam. No caso, as diferentes formas de validar dados são os algoritmos, e o sistema pode escolher qual usar em tempo de execução.

Padrão de Projeto

Categoria (GoF)

Propósito Principal

Aplicação no Problema

Adequação

Strategy

Comportamental

Encapsular uma família de algoritmos, tornando-os intercambiáveis

Encapsular regras de validação em classes separadas e permitir troca dinâmica

Correta

Observer

Comportamental

Notificar múltiplos objetos sobre mudanças de estado

Não se aplica (foco em comunicação, não em algoritmos variáveis)

❌ Incorreta

Singleton

Criacional

Garantir uma única instância e ponto de acesso global

Não resolve variação de algoritmos

❌ Incorreta

Composite

Estrutural

Tratar objetos individuais e composições de forma uniforme

Não se aplica (foco em hierarquias parte-todo)

❌ Incorreta

Prototype

Criacional

Criar objetos por clonagem a partir de um protótipo

Não encapsula comportamentos variáveis

❌ Incorreta

Padrões GoF (comportamentais)
  • 1Strategy
    • Encapsula algoritmos
    • Intercambiáveis em execução
    • Cliente não é alterado
  • 2Observer
    • Notifica mudanças de estado
  • 3Composite
    • Hierarquia parte-todo
  • 4Prototype
    • Clonagem de objetos
  • 5Padrões GoF (criacionais)
    • Singleton
      • Única instância global
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

O padrão Observer é usado para notificar múltiplos objetos sobre mudanças de estado em outro objeto. Não se aplica ao encapsulamento de algoritmos variáveis, mas sim a comunicação entre objetos.

Alternativa B — ❌ Incorreta

O padrão Singleton garante que uma classe tenha apenas uma instância e fornece um ponto global de acesso a ela. Não resolve o problema de variação de algoritmos.

Alternativa C — ✅ Correta ⟵ GABARITO

O padrão Strategy encapsula algoritmos intercambiáveis. A descrição do problema — "encapsular as regras de validação em classes separadas e permitir que o sistema troque dinamicamente o método de validação usado" — é a definição clássica de aplicação do Strategy.

Alternativa D — ❌ Incorreta

O padrão Composite é usado para tratar objetos individuais e composições de objetos de maneira uniforme, formando hierarquias parte-todo. Não se aplica à troca dinâmica de algoritmos.

Alternativa E — ❌ Incorreta

O padrão Prototype é usado para criar novos objetos a partir de um protótipo (clonagem), não para encapsular comportamentos variáveis.

PEGA ESSA DICA!

Para identificar o padrão Strategy na prova, procure por palavras-chave como "encapsular algoritmos", "família de algoritmos", "intercambiáveis", "trocar dinamicamente o comportamento". Esse é um dos padrões mais cobrados da categoria comportamental do GoF.

Gabarito: letra C.

Link permanente: /questoes/ce228775