Design patern memento, alguém usa? Existe algum forum sobre Design Patern?  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
leonardocfmg
Debugger

Membro desde: 24/01/2007 10:30:37
Mensagens: 69
Localização: Muriaé - MG
Offline

Alguém usa ou já usou o design patern memento?

Poderia me fornecer um matérial ou me indicar um site que tenha?

No GUJ está faltando um forum sobre Design Patern! Seria muito bom se o administrador do GUJ o criasse!

Obrigado...
luistiagos
GUJ Expert
[Avatar]

Membro desde: 10/07/2006 10:37:23
Mensagens: 3161
Offline

tambem gostaria saber desse pattern




SCJP 1.5
SCJA 1.0
IBM DB2 Associate
[Email] [MSN]
nbluis
GUJ Master
[Avatar]

Membro desde: 27/05/2006 01:31:51
Mensagens: 1531
Localização: Porto Alegre - RS
Offline

Este faz parte do tópico "Metodologias, Arquitetura & Projeto de Software"

Está do descritivo do tópico;

Luis Eduardo Bohrer

Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
[WWW]
felipesp
Debugger
[Avatar]

Membro desde: 14/04/2004 14:16:52
Mensagens: 69
Localização: São Paulo
Offline

Observação: normalmente quando utilizamos um determinado pattern, nós partimos de um problema específico e nos perguntamos: "existe algum design pattern conhecido que resolva este problema?". Estou fazendo a observação pois participei de um projeto onde o memento foi introduzido a força e gerou um abacaxi daqueles.

Quando estudei este pattern o exemplo clássico de utilização apresentado era o Ctrl+Z das aplicações swing. Alguns colegas acharam que seria uma ótima idéia usar em nosso sistema. Em uma determinada tela existia um botão de desfazer.

A idéia foi implementada mas ela em geral é muito custosa. Ou seja: em geral você vai precisar analizar seus objetos para otimizar o memento, senão fica tudo muito lento. No nosso caso tudo funcionou no desenvolvimento com até uns 12 objetos por tela. Em produção a aplicação simplesmente parou de funcionar quando acessaram uma página com 80 objetos.

Por fim, descobrimos que o caso em questão não era para memento pois o botão desfazer na verdade não voltava os objetos ao estado anterior, mas sim criava um "outro caminho".

Resumindo: pense mais de duas vezes antes de usar memento

Felipe S. Gomes
phillmelon@gmail.com
http://felipe.blog.br/
[Email] [WWW] [Yahoo!] [MSN] [ICQ]
leonardocfmg
Debugger

Membro desde: 24/01/2007 10:30:37
Mensagens: 69
Localização: Muriaé - MG
Offline

Só lendo artigos em inglês? (tente traduzir se não souber inglês)
Fonte: http://en.wikipedia.org/wiki/Memento_pattern

O que o design patern memento faz é simplesmente restaurar o objeto para seu estado original (seria tipo um rollback ou CTRL + Z).

São usados dois objetos: o originator e um guarda. O originator é algum objeto que tem um estado interno. O guarda está indo fazer algo ao originator, só que com a possibilidade de desfaz a mudança. O guarda pede primeiramente ao originator um objeto do memento. Depois faz as mudanças que precisa, logo após efetua um rollback e retorna o objeto para o seu estado original.

Se eu estiver errado me corrijam!

Segue algumas classes de exemplos:

Classe Originator:



Classe Caretaker:



Classe MementoExample:



 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team