Questão de Arquitetura de Software — Padrões de projeto (Design Patterns) — FGV 2023
Arquitetura de Software›Padrõ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:
AState;
BIterator;
CMediator;
DMemento;
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.