snapshot padrÃo de projeto. origem o padrão snapshot é originado do memento, documentado em gof...

14
SNAPSHOT PADRÃO DE PROJETO

Upload: internet

Post on 22-Apr-2015

105 views

Category:

Documents


0 download

TRANSCRIPT

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