Memento

Descrição:

A intenção deste padrão é capturar e externalizar um estado interno de um objeto, sem violar o encapsulamento, de maneira que o objeto possa ser restaurado para esse estado mais tarde.

Descrição da UML:

  • Memento :
  • Diagrama de Classes genérico do padrão:

    Exemplo:

    O exemplo do livro é sobre um jogo que não tem a função "salvar progresso" e os jogadores estão pedindo essa função para que todos os seus esforços não tenham sido em vão quando o seu personagem é eliminado. O Memento tem como objetivo:
    - Salvar o estado do objeto-chave do sistema;
    - Manter o encapsulamento desse objeto-chave;

    Diagrama de Classes do exemplo:

    Memento

    Ver código fonte no Github