Padrão de Projeto Memento

Slides:



Advertisements
Apresentações semelhantes
Desenvolvimento de Plug-ins Orientado a Testes
Advertisements

Padrão de Projeto Iterator
Design Patterns Patrícia Mateus nº3343 Carla Guerreiro nº3157
Engenharia de Software
Modelagem de Software Orientado a Objetos
BANCO DE DADOS Transparências baseadas no capítulo 1 do livro de KORTH e SILBERCHATZ e 1 e 2 do livro de ELMASRI e NAVATHE. Juliana Amaral e Rodrigo Baroni.
Sistema para Criação e Testes de Modelos Formais
Design Patterns Builder Pattern
Elisabeth Suescún Leandra Mara da Silva
Projeto de Sistemas de Software Kelly Leal Leandra Mara da Silva
Projeto de Sistemas de Software Fernando de Freitas Silva
Projeto de Sistemas de Software
Projeto de Sistemas de Software(PSS) Baldoino F. dos S. Neto
Projeto de Sistemas de Software
Projeto de Sistemas de Software
Padrões de Projeto Mediator.
Projeto de Sistemas de Software
Projeto de Sistemas de Software (PSS) Prof. Carlos J. P. Lucena.
Padrões de Projeto Prototype.
Padrões de Projeto Adapter.
Abstract Factory – Gustavo Lopes Mourad.
Kleinner Farias e Raphael do Vale
Projeto de Sistemas de Software Leandra Mara da Silva
Padrão Abstract Factory
Análise e Projeto de Sistemas
Aline Vasconcelos D.Sc. em Sistemas e Computação/COPPE UFRJ
1 Introdução aos padrões de projeto (GoF) Conceitos preliminares –Mecanismos de herança –Princípio de Substituição de Liskov –Acoplamento concreto x Acoplamento.
Módulo III Padrões GOF: Command
1 Memento. 2 Há situações em que é necessário registrar o estado interno de um objeto em determinados pontos do processamento. –e.g.: checkpoints e mecanismos.
Implementação de pipeline de sequenciamento configurável
Padrões de Interação Homem- Máquina (HCI Patterns) Priscila de Castro Nicola Novembro 2004.
Fundamentos da Engenharia de Software
Vector To Raster Factory & Strategy Eric Silva Abreu São José dos Campos - 15 de dezembro de 2006.
Projeto de Sistemas de Software
Chain of Responsibility
Linguagens Orientadas a Objeto
Daniel de Souza Martins Prof. Dr. Patrícia
DC - UFC Copyright © 2003 Misael Santos e Rossana Andrade 1 Padrões de Projeto para Sistemas Web Misael Santos e Rossana Andrade Universidade.
Adriano S. Castro André Abdalla
1 Gestão de Desejos Engenharia de Software numa empresa certificada de Telecomunicações José Bonnet FCUP, 2005.Nov.30 ISO LABORATÓRIOS ACREDITADOS.
1 Gestão de Desejos Engenharia de Software numa empresa certificada de Telecomunicações José Bonnet FCUP, 2003.Mai.19.
LEONARDO SIMAS JUSSI BARROS WESLLEY VIEIRA Flyweight.
SNAPSHOT PADRÃO DE PROJETO.
CORBA Apresentação do Padrão CORBA Maurício Maron Mendes Ramiro Pereira de Magalhães
Design Pattern (Padrões de Projeto)
April 05 Prof. Ismael H. F. Santos - 1 Módulo I Princípios e Padrões de Projeto de SW em Java Professores Eduardo Bezerra –
Padrão de Projeto Iterator Projeto de Sistemas de Software Thiago Pinheiro de Araújo.
Trabalho Final de Padrões de Projeto
UTILIZAÇÃO DOS PADRÕES DA COLEÇÃO WELIE PARA ELABORAÇÃO DE INTERFACES GRÁFICAS DO FRAMEWORK PARA FORMAÇÃO DE PREÇO DE VENDA Fernando Henrique Malaquias.
Padrões de Design Toacy Cavalcante de Oliveira. 2 April 20, 2015 Problema.
April 05 Prof. Ismael H. F. Santos - 1 Módulo III Padrões GOF: Singleton, Professores Eduardo Bezerra –
Memento Grupo Angélica Teixeira Rodrigo Silva
Padrões de Projeto Abstract Factory.
Design Patterns Fundamentos da engenharia de softaware. 19/1/2003.
DC - UFC Copyright © 2003 Misael Santos e Rossana Andrade 1 Padrões de Projeto para Sistemas Web Misael Santos e Rossana Andrade Universidade.
April 05 Prof. Ismael H. F. Santos - 1 Módulo III Padrões GOF: Memento Professores Eduardo Bezerra –
Padrões de Projeto de Software Orientado a Objetos
1 Design Patterns Israel Rios. 2 Origens A idéia de padrões de projeto não teve origem na ciência da computação Christopher Alexander A Pattern Language:
Modelagem Orientada a Objetos Especialização em Engenharia de Software PUCPR 1999.
CURSO DE ESPECIALIZAÇÃO EM TECNOLOGIA JAVA DESIGN PATTERNS Prof. Cesar Augusto Tacla UTFPR/Campus Curitiba.
1 - Introdução a Padrões de Projeto
Mestrado Profissional em Gestão da Qualidade Total MP 255 Sistemas de Informação e Sistemas da Qualidade UNICAMP – FEM Mestrado Profissional em.
UCSal – Bacharelado em Informática Tópicos Especiais em Informática II Profa. Semíramis Assis
Padrões de Projeto de Criação Padrões de Projeto Orientados a Objetos Prof a. Danielle Martin Universidade de Mogi das Cruzes.
Jadson Xavier Muller Oliveira.  É difícil encontrar alguma definição consensual de padrão.  Definição aceitável: - São idéias que foram úteis em algum.
1 Padrões de Projeto de Software Orientado a Objetos Programação Orientada a Objetos Prof. Fabio Kon - IME/USP.
1 Introdução aos Padrões de Projetos Créditos: Prof. Fabio Kon - IME/USP Adaptações: Prof. Nécio de Lima Veras.
Introdução a Padrões de Projeto Padrões de Projeto Orientado a Objetos Profa. Danielle Martin Universidade de Mogi das Cruzes.
Programação Orienta a Objetos (SI) Análise e Projetos de Sistemas (LCC) 1 - Introdução a Padrões de Projeto Eduardo de Lucena Falcão.
Introdução a Padrões de Projeto Padrões de Projeto Orientado a Objetos Profa. Danielle Martin Universidade de Mogi das Cruzes.
Transcrição da apresentação:

Padrão de Projeto Memento Projeto de Sistemas de Software Manoel Teixeira de Abreu Netto Thiago Pinheiro de Araújo

Memento Propósito Capturar e armazenar externamente o estado de um objeto, de modo que o estado anterior deste objeto possa ser posteriormente restaurado Sem violar encapsulamento © LES/PUC-Rio

Memento Motivação Armazenar o histórico do estado de um objeto. Fornecer funcionalidade de restauração. Exemplos: Armazenamento de estados a serem restaurados, por exemplo, em um banco de dados. Undo (IHC), caso você queria manter uma forma de desfazer ações realizadas no objeto, é possível salvando tais estados a cada modificaçao, isto pode ser feito em conjunto com o padrão Command [2] Instruções passo-a-passo (IHC), fornecer a possibilidade do usuário retornar a um passo. Possivelmente um passo realizado altera o estado de um ou mais objetos. O padrão Memento permite que o estado anterior do objeto seja recuperado ao retornar um passo sem que o encapsulamento seja violado [2] © LES/PUC-Rio

Memento Aplicabilidade De forma geral, onde existe a necessidade de salvar o estado de um objeto, ou parte dele, para possivelmente restaurar depois Onde uma interface de obtenção do estado do objeto comprometeria seu encapsulamento © LES/PUC-Rio

Memento Estrutura © LES/PUC-Rio

Memento Participantes Memento Originator Caretaker Guarda um estado do objeto Originator Protege o encapsulamento do estado, não permitindo que outros objetos além do Originator tenham acesso Originator Cria um Memento contendo a representação do seu estado atual Usa o Memento para restaurar seu estado Caretaker É responsável por armazenar os Mementos gerados por um Originator Não é capaz de interpretar o estado armazenado no Memento © LES/PUC-Rio

Memento Colaborações O Caretaker pede ao Originator o memento do seu estado atual. Caso seja necessário restaurar o estado, o Caretaker pede ao Originator que carregue o estado passado como parâmetro. © LES/PUC-Rio

Memento Conseqüências Vantagens: Desvantagens: O estado do Originator é guardado fora dele sem a perda do encapsulamento. O Originator é simplificado por não ter a responsabilidade de gerenciamento de estados anteriores. Desvantagens: O uso de mementos pode ser uma solução cara, dependendo do tamanho e do número de estados a serem salvos. O Caretaker ganha a responsabilidade de deleção dos mementos armazenados. Em determinadas linguagens pode ser difícil garantir que apenas o Originator será capaz de acessar o memento. Ex: Em C++ pode-se fazer um cast para void *. Em Java pode-se fazer um cast para Object. © LES/PUC-Rio

Memento © LES/PUC-Rio

Memento Bibliografia [1] Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software, 2st edition, Addison-Wesley Professional Computing Series, 1998. [2] SILVA, A. C. DA ; SILVA, Júnia Coutinho Anacleto ; PENTEADO, R. A. D. ; SILVA, S. R. P. DA . Relacionamento de Padrões de Engenharia de Software e de Interação Humano-Computador para o Desenvolvimento de Sistemas Interativos. In: SugarLoaf PLoP 2005 - V CONFERÊNCIA LATINO-AMERICANA EM LINGUAGENS DE PADRÕES PARA PROGRAMAÇÃO, 2005, Campos do Jordão. Anais da Conferência Latino-Americana em Linguagens de Padrões para Programação, 2005. © LES/PUC-Rio

Fim!