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
fg072692
Banca
FGV
Órgão
TJ-SE
Ano
2023
Nível
Superior
Cargo
Analista Judiciário - Especialidade - Análise de Sistemas - Web Designer
Pedro está implementando a aplicação web SergipeJusto. Pedro aplicou em SergipeJusto o padrão de projeto comportamental que soluciona o problema de armazenar e, posteriormente, restaurar o estado interno de um objeto sem violar o seu encapsulamento.Pedro aplicou em SergipeJusto o padrão de projeto comportamental:
  1. AState;
  2. BIterator;
  3. CMediator;
  4. DMemento;
  5. EPrototype.
Revelar gabarito e comentário

GabaritoD — Memento;

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 Comportamentais – Memento

Gabarito: letra D. O padrão Memento é o padrão comportamental que permite capturar e externalizar o estado interno de um objeto sem violar seu encapsulamento, de modo que esse estado possa ser restaurado posteriormente. A descrição do enunciado corresponde exatamente à definição do Memento, um dos 11 padrões comportamentais do GoF.

A questão exige o conhecimento das finalidades dos padrões GoF, especialmente os comportamentais. O Memento é o único entre as alternativas cujo propósito é salvar e restaurar o estado interno de um objeto de forma controlada.

Padrão (Alternativa)

Categoria GoF

Problema que Resolve

Relação com "Salvar/Restaurar Estado"

State (A)

Comportamental

Alterar comportamento conforme estado interno do objeto

Nenhuma; foco em delegar comportamentos, não em persistir estado

Iterator (B)

Comportamental

Acessar elementos de uma coleção sequencialmente sem expor estrutura

Nenhuma; foco em navegação, não em estado

Mediator (C)

Comportamental

Reduzir acoplamento entre objetos que interagem

Nenhuma; foco em comunicação, não em estado

Memento (D)

Comportamental

Capturar e restaurar estado interno sem violar encapsulamento

Direta e central; é a definição do padrão

Prototype (E)

Criacional

Criar objetos copiando um protótipo

Nenhuma; foco em criação por clonagem, não em restauração de estado

Padrões GoF
  • 1Comportamentais
    • State
      • Altera comportamento conforme estado
    • Iterator
      • Acessa sequencialmente elementos
    • Mediator
      • Encapsula interação entre objetos
    • Memento
      • Salva e restaura estado interno
      • Sem violar encapsulamento
  • 2Criacionais
    • Prototype
      • Cria objetos por cópia
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

O padrão State permite que um objeto altere seu comportamento quando seu estado interno muda, parecendo ter mudado de classe. Não tem foco em salvar/restaurar estado, mas sim em delegar comportamentos conforme o estado atual.

Alternativa B — ❌ Incorreta

O padrão Iterator fornece uma maneira de acessar sequencialmente os elementos de um objeto agregado sem expor sua representação subjacente. Não lida com armazenamento ou restauração de estado.

Alternativa C — ❌ Incorreta

O padrão Mediator define um objeto que encapsula a forma como um conjunto de objetos interage, promovendo acoplamento fraco ao evitar referências explícitas entre eles. Não está relacionado a salvar estado.

Alternativa D — ✅ Correta ⟵ GABARITO

O padrão Memento resolve exatamente o problema descrito: armazenar o estado interno de um objeto (em um objeto memento) e, posteriormente, restaurá-lo sem quebrar o encapsulamento do objeto original (originator). Ele é composto por três participantes: Originator (objeto que tem o estado), Memento (objeto que armazena o estado) e Caretaker (responsável por guardar os mementos).

Alternativa E — ❌ Incorreta

O padrão Prototype é um padrão criacional, não comportamental. Ele especifica tipos de objetos a serem criados usando uma instância prototípica e cria novos objetos copiando esse protótipo. Nada a ver com restauração de estado.

PEGA ESSA DICA!

Para identificar padrões de projeto, associe o nome ao problema clássico: Memento = “salvar/restaurar estado”; State = “comportamento varia com estado”; Iterator = “percorrer coleção”; Mediator = “centralizar comunicação”; Prototype = “cópia de objetos”. Memorize a categoria de cada um: Memento é comportamental, Prototype é criacional.

Gabarito: letra D.

Link permanente: /questoes/fg072692