SNAPSHOT PADRÃO DE PROJETO. Origem O padrão Snapshot é originado do Memento, documentado em GoF...

14
SNAPSHOT PADRÃO DE PROJETO

Transcript of SNAPSHOT PADRÃO DE PROJETO. Origem O padrão Snapshot é originado do Memento, documentado em GoF...

Page 1: SNAPSHOT PADRÃO DE PROJETO. Origem  O padrão Snapshot é originado do Memento, documentado em GoF (Gang of Four) 95.  A grosso modo a tradução para o.

SNAPSHOTPADRÃO DE PROJETO

Page 2: SNAPSHOT PADRÃO DE PROJETO. Origem  O padrão Snapshot é originado do Memento, documentado em GoF (Gang of Four) 95.  A grosso modo a tradução para o.

Origem

O padrão Snapshot é originado do Memento, documentado em GoF (Gang of Four) 95.

A grosso modo a tradução para o português brasileiro seria “Instantâneo”.

SNAPSHOT

Page 3: SNAPSHOT PADRÃO DE PROJETO. Origem  O padrão Snapshot é originado do Memento, documentado em GoF (Gang of Four) 95.  A grosso modo a tradução para o.

Objetivo

Capturar o estado de um objeto sendo que o mesmo poderá ser restaurado quando necessário.

SNAPSHOT

Page 4: SNAPSHOT PADRÃO DE PROJETO. Origem  O padrão Snapshot é originado do Memento, documentado em GoF (Gang of Four) 95.  A grosso modo a tradução para o.

Aplicação

O Snapshot é utilizado quando se está trabalhando com aplicações longas que não se tem ideia de quantos dias irá levar para se concluir.

Exemplo: Jogo de vídeo-games onde o jogador vai passando por fases, salva o jogo e quer retomar de onde parou dias atrás.

SNAPSHOT

Page 5: SNAPSHOT PADRÃO DE PROJETO. Origem  O padrão Snapshot é originado do Memento, documentado em GoF (Gang of Four) 95.  A grosso modo a tradução para o.

Aplicação (Exemplo)

SNAPSHOT

Page 6: SNAPSHOT PADRÃO DE PROJETO. Origem  O padrão Snapshot é originado do Memento, documentado em GoF (Gang of Four) 95.  A grosso modo a tradução para o.

Funcionamento

O Snapshot pode ser implementado de duas maneiras: através do Memento ou com Serialização.

SNAPSHOT

Page 7: SNAPSHOT PADRÃO DE PROJETO. Origem  O padrão Snapshot é originado do Memento, documentado em GoF (Gang of Four) 95.  A grosso modo a tradução para o.

Estrutura Genérica Snapshot Usando Memento

SNAPSHOT

Page 8: SNAPSHOT PADRÃO DE PROJETO. Origem  O padrão Snapshot é originado do Memento, documentado em GoF (Gang of Four) 95.  A grosso modo a tradução para o.

ParticipantesSnapshot Usando Memento

Originator: é uma classe cuja as informações do estado deve ser conservado e restaurado.

Memento: Seu objetivo é encapsular snapshots do estado de um objeto Originator.

Caretaker: Instâncias desta classe mantêm

uma coleção de objetos de Memento.

SNAPSHOT

Page 9: SNAPSHOT PADRÃO DE PROJETO. Origem  O padrão Snapshot é originado do Memento, documentado em GoF (Gang of Four) 95.  A grosso modo a tradução para o.

Estrutura Genérica Snapshot Usando Serialização

SNAPSHOT

Page 10: SNAPSHOT PADRÃO DE PROJETO. Origem  O padrão Snapshot é originado do Memento, documentado em GoF (Gang of Four) 95.  A grosso modo a tradução para o.

SNAPSHOT

ParticipantesSnapshot Usando Serialização

Target: É o objeto alvo da serialização e desserialização.

ObjectOutputStream: descobre e acessa as informações de um objeto Target e grava-o em um fluxo de bytes com informações adicionais.

OutputStream: Instância responsável por diferenciar entre salvar na memória ou em forma de arquivo.

ObjectInputStream: instâncias dessas classes serializadas lêem informações do estado a partir de um fluxo de bytes e restauram-no.

Page 11: SNAPSHOT PADRÃO DE PROJETO. Origem  O padrão Snapshot é originado do Memento, documentado em GoF (Gang of Four) 95.  A grosso modo a tradução para o.

Consequências

As duas formas de implementar o padrão Snapshot trazem muito da complexidade de salvar e restaurar o estado de um objeto.

O padrão Snapshot não é muito apropriado para desfazer uma sequência de comandos. Fazendo muitos snapshots de um objeto ele pode consumir uma quantidade grande de armazenamento.

SNAPSHOT

Page 12: SNAPSHOT PADRÃO DE PROJETO. Origem  O padrão Snapshot é originado do Memento, documentado em GoF (Gang of Four) 95.  A grosso modo a tradução para o.

Exemplo Genérico

SNAPSHOT

Page 13: SNAPSHOT PADRÃO DE PROJETO. Origem  O padrão Snapshot é originado do Memento, documentado em GoF (Gang of Four) 95.  A grosso modo a tradução para o.

Referências

GRAND, Mark. Patterns in Java: a Catalog of Reusable Desing Patterns Illistrated with UML. Vol. 1. Wiley, 1998.

http://www.pg.cefetpr.br/coinf/simone/patterns/memento.php

http://eulerhm.googlepages.com/PadresdeProjeto-Comportamentais.pdf

http://martinfowler.com/ap2/snapshot.html

SNAPSHOT

Page 14: SNAPSHOT PADRÃO DE PROJETO. Origem  O padrão Snapshot é originado do Memento, documentado em GoF (Gang of Four) 95.  A grosso modo a tradução para o.

Componentes Rick Andrade Vagner Fonseca Yuri Guimarães

Projeto Avançado de Sistemas

SNAPSHOT