Com base nessa situação hipotética, julgue o item a seguir, ...
I implementar um padrão de criação que possibilite a separação entre a construção de um objeto complexo e sua representação de modo que esse processo de construção possa criar diferentes representações;
II implementar um padrão que evite vínculo permanente entre uma abstração e sua implementação;
III implementar um padrão que, sem violar o encapsulamento e a captura, externalize o estado interno de um objeto e permita que posteriormente ele seja restaurado a esse estado;
IV implementar um padrão que permita a variação do algoritmo independentemente dos clientes que o utilizam;
V implementar um padrão que forneça uma interface unificada para um conjunto de interfaces em um subsistema;
VI implementar um padrão que especifique os tipos de objetos a serem criados usando uma instância prototípica e crie novos objetos copiando este novo protótipo.
O padrão comportamental memento atende corretamente o que se pede em III.
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa Correta: C - certo
A questão trata de identificar padrões de projeto adequados para atender a determinadas necessidades expressas em requisitos de software. Para fazer essa identificação, é importante compreender o propósito e a aplicabilidade de cada padrão de projeto.
O padrão Memento enquadra-se na categoria de padrões comportamentais e tem como objetivo fornecer a capacidade de restaurar um objeto para um estado anterior, o que é útil em funcionalidades como desfazer ou salvar um estado temporário. Este padrão permite que o estado interno de um objeto seja salvo sem violar o encapsulamento e sem expor os detalhes internos do objeto, o que está de acordo com o requisito III mencionado na questão.
No padrão Memento, são utilizadas três entidades principais:
- Originator: é o objeto que tem seu estado interno que se deseja salvar e restaurar.
- Memento: é a representação do estado do Originator. Armazena o estado interno do Originator, mas não expõe sua estrutura interna.
- Caretaker: é responsável por guardar o memento. O Caretaker solicita um memento ao Originator e o mantém, podendo retorná-lo ao Originator para que o estado anterior seja restaurado.
Assim, o padrão Memento atende perfeitamente ao requisito III pois possibilita que o estado de um objeto seja guardado e restaurado, sem quebrar o encapsulamento. Isso é feito de maneira que o estado possa ser armazenado ou restabelecido sem que o objeto revele detalhes sobre sua implementação.
Portanto, a afirmação de que o padrão comportamental memento atende corretamente o que se pede em III está correta, e a alternativa C é a escolha adequada para quem deseja responder a questão com precisão.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
Memento é um padrão de projeto que permite armazenar o estado interno de um objeto em um determinado momento, para que seja possível retorná-lo a este estado, caso necessário. FONTE: https://www.wikiwand.com/pt/Memento_(inform%C3%A1tica)
Uma "técnica" que eu uso é: quando a descrição do padrão der a ideia de um "momento" na execução do objeto que será exteriorizado, não há outra dúvida, é o Memento.
I-builder (criação)
II-bridge (estrutural)
III-memento (comportamental)
IV-strategy (comportamental)
V-facade (estrutural)
VI-prototype (criação)
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo