quinta-feira, 2 de novembro de 2023

Design Patterns - Padrões Comportamentais - Memento

O padrão de design Memento (Memorando) é um padrão comportamental que permite capturar e armazenar o estado interno de um objeto sem violar sua encapsulação, de modo que o objeto possa ser restaurado para esse estado posteriormente. O padrão Memento é útil quando é necessário implementar a funcionalidade de desfazer (undo) ou restaurar o estado de um objeto a um ponto anterior em sua história.

O padrão Memento é composto pelos seguintes elementos:

  1. Originator (Originador): É o objeto cujo estado interno precisa ser salvo e restaurado. Ele cria um memento para representar o estado atual do objeto e pode restaurar seu estado a partir de um memento.

  2. Memento: É um objeto que armazena o estado interno do originador de forma opaca para o resto do sistema. Ele tem métodos para recuperar o estado do originador (para permitir que o originador seja restaurado para esse estado) e, geralmente, não possui métodos para modificar seu estado interno.

  3. Caretaker (Cuidador): É responsável por manter os mementos. O cuidador não deve modificar ou examinar o conteúdo de um memento, mas pode guardar e devolver mementos para o originador, se necessário.

Em termos simples, o padrão Memento funciona da seguinte maneira:

  1. O Originador cria um Memento para representar seu estado atual e o passa para o Cuidador para armazenamento.

  2. O Originador pode solicitar ao Cuidador um Memento anterior para restaurar seu estado a um ponto anterior no tempo.

  3. O Cuidador apenas armazena e devolve os Mementos quando solicitado pelo Originador.

O padrão Memento é particularmente útil quando você precisa implementar funcionalidades de desfazer/refazer em aplicativos ou quando precisa fornecer um mecanismo para salvar e restaurar o estado de um objeto em diferentes pontos no tempo, por exemplo, em editores de texto, softwares de design gráfico, sistemas de gerenciamento de documentos, etc.

Em resumo, o padrão Memento ajuda a preservar o encapsulamento, permitindo que os objetos restaurem seus estados anteriores sem revelar detalhes de sua implementação interna.

Nenhum comentário:

Postar um comentário

Design Patterns - Padrões de Criação - Prototype

O padrão Prototype é um padrão de design que permite a criação de novos objetos a partir de um modelo existente, também conhecido como protó...