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:
- A)State;
Errada, porque State lida com mudança de comportamento conforme o estado, não com armazenamento e restauração do estado interno.
- B)Iterator;
Errada, porque Iterator serve para percorrer elementos de uma coleção, sem relação com salvar estado.
- C)Mediator;
Errada, porque Mediator organiza a comunicação entre objetos, mas não guarda nem recupera estados.
- D)Memento;
Certa, porque Memento permite armazenar e depois restaurar o estado interno de um objeto sem violar seu encapsulamento.
- E)Prototype.
Errada, porque Prototype cria novos objetos por clonagem, não recupera um estado anterior do objeto.
Gabarito: D
O enunciado descreve o padrão comportamental usado quando você precisa guardar o estado interno de um objeto e depois restaurá-lo, sem abrir a “caixa preta” desse objeto. Isso é clássico de Memento. A ideia é simples: o objeto cria uma espécie de registro do seu estado, e esse registro pode ser salvo e usado depois para voltar ao ponto anterior, como um “desfazer” elegante. A sacada do padrão é proteger o encapsulamento. Você não sai espalhando os atributos do objeto por aí; apenas armazena um retrato do estado, com regras bem controladas. Em termos de prova, sempre que aparecer a ideia de snapshot, checkpoint, restore ou undo, acenda a luz do Memento. O State é outro assunto: ele muda o comportamento do objeto conforme seu estado interno, mas não é para salvar e restaurar estado. O Iterator percorre coleções. O Mediator centraliza a comunicação entre objetos. Já o Prototype trata de criar objetos por cópia, e não de voltar no tempo. Por isso, o gabarito D está correto.