Pular para o conteúdo principal

Questão de Arquitetura de Software — Padrões de projeto (Design Patterns) — FGV 2023

Arquitetura de SoftwarePadrões de projeto (Design Patterns)
Código
fg072568
Banca
FGV
Órgão
TJ-SE
Ano
2023
Nível
Superior
Cargo
Analista Judiciário - Especialidade - Análise de Sistemas
A analista Maria está desenvolvendo a funcionalidade C de uma aplicação, utilizando os padrões de projeto Gang of Four (GoF). Existem vários algoritmos, conhecidos e disponíveis, capazes de implementar a funcionalidade C. A aplicação deve deixar o usuário escolher qual algoritmo usar. Sendo assim, Maria decidiu aplicar na funcionalidade C o padrão GoF comportamental que modela algoritmos similares como objetos independentes, porém, passíveis de troca em tempo de execução.Maria decidiu aplicar o padrão GoF:
  1. AVisitor;
  2. BStrategy;
  3. CMediator;
  4. DInterpreter;
  5. ETemplate Method.
Revelar gabarito e comentário

GabaritoB — 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 (Design Patterns) – Strategy

Gabarito: letra B. O enunciado descreve exatamente o padrão Strategy: ele modela algoritmos similares como objetos independentes, que podem ser trocados em tempo de execução pelo usuário. Esse padrão é classificado como comportamental pelo catálogo GoF.

Padrão GoF

Classificação

Propósito principal

Permite troca de algoritmos em tempo de execução?

Relação com o enunciado

Strategy

Comportamental

Definir uma família de algoritmos, encapsulá-los e torná-los intercambiáveis

Sim

Gabarito – Exatamente o que Maria precisa

Visitor

Comportamental

Separar um algoritmo da estrutura de objetos sobre a qual opera

Não

❌ Foca em adicionar operações, não em trocar algoritmos

Mediator

Comportamental

Encapsular a interação entre objetos, reduzindo acoplamento

Não

❌ Não se aplica à seleção de algoritmos

Interpreter

Comportamental

Definir uma gramática e um interpretador para sentenças de uma linguagem

Não

❌ Não é usado para intercâmbio de algoritmos

Template Method

Comportamental

Definir o esqueleto de um algoritmo, postergando passos para subclasses

Não (troca por herança em tempo de compilação)

❌ Não permite troca em tempo de execução pelo usuário

Padrões GoF comportamentais
  • 1Algoritmos como objetos independentes
    • Strategy (troca em execução)
    • Template Method (troca por herança)
  • 2Outros propósitos
    • Visitor (operações em estruturas)
    • Mediator (interação entre objetos)
    • Interpreter (gramática de linguagem)
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

Visitor é um padrão comportamental que permite separar um algoritmo da estrutura de objetos sobre a qual opera, mas não tem como objetivo permitir a troca de algoritmos em tempo de execução pelo usuário. O Visitor adiciona novas operações a classes sem modificá-las.

Alternativa B — ✅ Correta ⟵ GABARITO

O Strategy define uma família de algoritmos, encapsula cada um deles e os torna intercambiáveis. A aplicação delega a escolha do algoritmo ao cliente, que pode alterá-lo dinamicamente. Exatamente o que Maria precisa.

Alternativa C — ❌ Incorreta

Mediator é um padrão comportamental que define um objeto que encapsula a interação entre um conjunto de objetos, promovendo baixo acoplamento. Não se aplica à seleção de algoritmos.

Alternativa D — ❌ Incorreta

Interpreter é um padrão comportamental que define uma representação para a gramática de uma linguagem e um interpretador para sentenças dessa linguagem. Não é usado para intercâmbio de algoritmos.

Alternativa E — ❌ Incorreta

Template Method é um padrão comportamental que define o esqueleto de um algoritmo em um método, postergando a definição de alguns passos para subclasses. Embora envolva algoritmos, a troca não é feita em tempo de execução pelo usuário, mas sim por herança em tempo de compilação.

Gabarito: letra B.

Link permanente: /questoes/fg072568