Escolar Documentos
Profissional Documentos
Cultura Documentos
INF011 Padres de Projeto Graduao Tecnolgica em Anlise e esen!ol!imento de "istemas "andro "# Andrade
-emento
Propsito:
Capturar e externali ar o estado interno de u! objeto" se! #iolar o en$apsula!ento" $o! o objeti#o de restaurar este estado no objeto e! u! !o!ento futuro
Pode+se pre$isar ar!a enar o estado interno de u! objeto para i!ple!entar" por exe!plo" checkpoints e !e$anis!os de undo ,ue possibilita! o retro$esso da apli$a)*o a u! estado anterior -xpor o estado" entretanto" #iola o en$apsula!ento e prejudi$a a $onfiabilidade e extensibilidade da apli$a)*o
INF011 Padres de Projeto Graduao Tecnolgica em Anlise e esen!ol!imento de "istemas "andro "# Andrade
-emento
(oti#a)*o:
-ditor .r/fi$o $o! $onexes entre objetos 0ConstraintSolver1: pro$esso fal'o de undo
INF011 Padres de Projeto Graduao Tecnolgica em Anlise e esen!ol!imento de "istemas "andro "# Andrade
-emento
(oti#a)*o:
2 Memento & u! objeto ,ue ar!a ena u! snapshot do estado interno de outro objeto o originador do Memento Pro$esso $orreto de undo $o! uso do Memento:
2 editor" $o!o u! efeito $olateral da opera)*o move()" re,uisita u! Memento do ConstraintSolver 2 ConstraintSolver $ria e retorna o Memento 0inst3n$ia de SolverState1" $ontendo estruturas de dados ,ue des$re#e! o estado atual das e,ua)es e #ari/#eis internas do ConstraintSolver (ais tarde" ,uando o usu/rio desfi er a opera)*o" o editor en#ia de #olta o SolverState para o ConstraintSolver 4aseado na infor!a)*o do SolverState o ConstraintSolver !odifi$a suas estruturas internas para o estado anterior
INF011 Padres de Projeto Graduao Tecnolgica em Anlise e esen!ol!imento de "istemas "andro "# Andrade
-emento
5pli$abilidade:
6uando deseja+se sal#ar u! snapshot do estado 0ou parte do estado1 de u! objeto" de !odo ,ue ele possa ser restaurado para este estado" e! u! !o!ento futuro
7tili ar u!a interfa$e direta para obter o estado iria expor detal'es de i!ple!enta)*o e #iolar o en$apsula!ento do objeto
INF011 Padres de Projeto Graduao Tecnolgica em Anlise e esen!ol!imento de "istemas "andro "# Andrade
-emento
-strutura:
INF011 Padres de Projeto Graduao Tecnolgica em Anlise e esen!ol!imento de "istemas "andro "# Andrade
-emento
Parti$ipantes:
Memento 08ol#er8tate1:
5r!a ena o estado interno do objeto ori.inador. Pode ar!a enar so!ente o estado !9ni!o ne$ess/rio para a dis$reti a)*o do objeto I!pede o a$esso de outro objetos ,ue n*o seja! o ori.inador Mementos possue! duas interfa$es:
7!a restrita 0narrow1" utili ada pelo Caretaker" so!ente para passar o Memento para outros objetos 7!a a!pla 0wide1" utili ada pelo ori.inador" para a$essar todos os dados ne$ess/rios : restaura)*o do estado pr&#io
INF011 Padres de Projeto Graduao Tecnolgica em Anlise e esen!ol!imento de "istemas "andro "# Andrade
-emento
Parti$ipantes:
Originator 0Constraint8ol#er1:
Cria o Memento $ontendo o snapshot do estado interno atual 7sa o Memento para restaurar seu estado interno ; respons/#el pela $ustdia do Memento Nun$a opera o Memento ou exa!ina o seu $onte<do
INF011 Padres de Projeto Graduao Tecnolgica em Anlise e esen!ol!imento de "istemas "andro "# Andrade
-emento
Colabora)es:
2 Caretaker soli$ita o Memento ao ori.inador" o !ant&! por u! te!po e ent*o o en#ia de #olta ao ori.inador
INF011 Padres de Projeto Graduao Tecnolgica em Anlise e esen!ol!imento de "istemas "andro "# Andrade
-emento
Conse,u=n$ias:
2 Memento e#ita expor infor!a)es ,ue so!ente o ori.inador de#eria !anipular !as pre$isa! ser ar!a enadas fora do ori.inador Isola outros objetos de detal'es internos poten$ial!ente $o!plexos" preser#ando os li!ites do en$apsula!ento -! outras solu)es o ori.inador !anteria #erses de estados internos re,uisitados pelos $lientes Isto traria toda a responsabilidade de .eren$ia!ento deste ar!a ena!ento para o ori.inador 5o de$idir ,ue os $lientes .eren$iar*o o estado !ant&!+se o ori.inador si!ples
8i!plifi$a o ori.inador:
INF011 Padres de Projeto Graduao Tecnolgica em Anlise e esen!ol!imento de "istemas "andro "# Andrade
-emento
Conse,u=n$ias:
5lto overhead pode ser .erado se o ori.inador ti#er de $opiar .randes ,uantidades de infor!a)*o para o Memento ou se os $lientes $ria! e retorna! Mementos para o ori.inador !uito fre,uente!ente 2 padr*o s & apropriado ,uando o en$apsula!ento e restaura)*o do estado do ori.inador t=! $usto baixo Pode ser dif9$il e! al.u!as lin.ua.ens .arantir ,ue so!ente o ori.inador ir/ a$essar o estado do Memento 2 Caretaker & respons/#el pela desalo$a)*o de Mementos por&! ele n*o sabe o ta!an'o do Memento
INF011 Padres de Projeto Graduao Tecnolgica em Anlise e esen!ol!imento de "istemas "andro "# Andrade
-emento
I!ple!enta)*o:
8uporte da lin.ua.e!:
Para i!ple!entar as interfa$es narrow e wide a lin.ua.e! de pro.ra!a)*o de#eria" ideal!ente" suportar dois n9#eis de prote)*o est/ti$a:
INF011 Padres de Projeto Graduao Tecnolgica em Anlise e esen!ol!imento de "istemas "andro "# Andrade
-emento
I!ple!enta)*o:
8uporte da lin.ua.e!:
Para i!ple!entar as interfa$es narrow e wide a lin.ua.e! de pro.ra!a)*o de#eria" ideal!ente" suportar dois n9#eis de prote)*o est/ti$a:
INF011 Padres de Projeto Graduao Tecnolgica em Anlise e esen!ol!imento de "istemas "andro "# Andrade
-emento
I!ple!enta)*o:
6uando os Mementos s*o $riados e de#ol#idos para o ori.inador" e! u!a se,u=n$ia pre#ista" o Memento pode ar!a enar so!ente a !udan)a in$re!ental do estado do ori.inador -x: $o!andos undoable pode! utili ar Mementos para .arantir ,ue $o!andos seja! restaurados para o seu estado anterior ,uando fore! desfeitos
INF011 Padres de Projeto Graduao Tecnolgica em Anlise e esen!ol!imento de "istemas "andro "# Andrade
-emento
Cdi.o exe!plo:
INF011 Padres de Projeto Graduao Tecnolgica em Anlise e esen!ol!imento de "istemas "andro "# Andrade
-emento
Cdi.o exe!plo:
INF011 Padres de Projeto Graduao Tecnolgica em Anlise e esen!ol!imento de "istemas "andro "# Andrade
-emento
Cdi.o exe!plo:
INF011 Padres de Projeto Graduao Tecnolgica em Anlise e esen!ol!imento de "istemas "andro "# Andrade
-emento
7sos $on'e$idos:
INF011 Padres de Projeto Graduao Tecnolgica em Anlise e esen!ol!imento de "istemas "andro "# Andrade
-emento
Padres rela$ionados:
Commands pode! utili ar Mementos para !anter o estado de opera)es re#ers9#eis Mementos pode! ser utili ados para itera)es
INF011 Padres de Projeto Graduao Tecnolgica em Anlise e esen!ol!imento de "istemas "andro "# Andrade
INF011 Padres de Projeto Graduao Tecnolgica em Anlise e esen!ol!imento de "istemas "andro "# Andrade