SlideShare una empresa de Scribd logo
1 de 19
PATRONES Memento
Frecuentemente los desarrolladores necesitan guardar el estado de un objeto para recuperarlo más tarde. Esto claro, sin perder el encapsulamiento del objeto.  Una de las maneras de hacerlo, es utilizando el patrón de diseño  Memento . En esta presentación vamos a ver como funciona, y un ejemplo práctico . PATRONES MEMENTO
Propósito El objetivo principal de Memento es guardar el estado de un objeto sin romper el encapsulamiento del mismo. PATRONES MEMENTO
[object Object],[object Object],[object Object],PATRONES MEMENTO
UML  PATRONES MEMENTO
[object Object],[object Object],[object Object],[object Object],[object Object],PATRONES MEMENTO
[object Object],[object Object],[object Object],[object Object],[object Object],PATRONES MEMENTO
UML, (Interacción)  PATRONES MEMENTO
[object Object],[object Object],[object Object],[object Object],[object Object],MEMENTO PATRONES
[object Object],[object Object],[object Object],PATRONES MEMENTO
[object Object],[object Object],[object Object],MEMENTO PATRONES
Ejemplo Un ejemplo donde se guarda temporalmente el estado de un perspectiva de venta, para después recuperarlo La idea es tener una clase  PersVenta  que seria la Originator, es decir la que crea y usa el Memento Una clase  MemoriaPerspectiva  que seria la  CareTaker,  es decir el responsable de la custodia del Memento Una clase  Memento,  que como dice el nombre es el Memento PATRONES MEMENTO
public class  PersVenta{ private  String nombre, telefono; private   double  presupuesto; public   void  setNombre(String nombre){ System.out.println(" Nombre   "+ nombre); this .nombre = nombre; } public void  setTelefono(String telefono){ System.out.println(" Telefono : "+ telefono); this .telefono = telefono; } public void  setPresupuesto(double presupuesto){ System.out.println(" Presupuesto : "+ presupuesto); this .presupuesto = presupuesto; } Clase Originator Propiedades del estado con métodos  set PATRONES MEMENTO
. . . . public  String getNombre(){  return  nombre; } public  String getTelefono() { return  telefono;} public  Double getPresupuesto() { return  presupuesto;} public  Memento SalvaMemento(){ System.out.println(" Salvando estado -- "); return new  Memento(nombre,telefono,presupuesto); }  public   void  RestauraMemento(Memento memento){ System.out.println(" Restaurando estado -- "); this .setNombre(memento.getNombre()); this .setTelefono(memento.getTelefono()); this .setPresupuesto(memento.getPresupuesto()); } } Propiedades del estado con métodos  get Crea el Memento Restaura el Memento MEMENTO PATRONES
Clase Memento que guarda el estado del Objeto public class  Memento{ private  String nombre; private  String telefono; private   double  presupuesto; public  Memento(String nombre, String telefono, double  presupuesto){ this .nombre = nombre; this .telefono = telefono; this .presupuesto = presupuesto; }  Mismas propiedades del Objeto a guardar Constructor de la Clase PATRONES MEMENTO
. . . . public   void  setNombre(String nombre){ this .nombre = nombre; } public void  setTelefono(String telefono){ this .telefono = telefono; } public void  setPresupuesto(double presupuesto){  this .presupuesto = presupuesto; } public  String getNombre(){ return  nombre; } public  String getTelefono() { return  telefono;} public  Double getPresupuesto() { return  presupuesto;} } Métodos  set()  y  get()  del Memento PATRONES MEMENTO
public class  MemoriaPerspectiva{ private  Memento memento; public void  setMemento (Memento memento){ this.memento = memento; } public Memento  getMemento (){ return memento;} } Clase Caretaker, es la que cuida el Memento PATRONES MEMENTO
public class  MainApp{ public static void  main(String[] args){ PersVenta pv =  new  PersVenta(); pv.setNombre(" Camilo "); pv.setTelefono(" 316 7985 "); pv.setPresupuesto(15000); MemoriaPerspectiva m =  new  MemoriaPerspectiva(); m.setMemento(pv.SalvaMemento()); pv.setNombre(" Andres "); pv.setTelefono(" 314 5485 "); pv.setPresupuesto(18000); pv.RestauraMemento(m.getMemento()); } } Para finalizar la Clase donde está el  Main() Crea un Objeto de perspectiva de venta y le introduce propiedades Guarda el estado Vuelve y cambia el Originador Restaura  el estado guardado PATRONES MEMENTO
La salida del programa anterior sería: PATRONES MEMENTO

Más contenido relacionado

La actualidad más candente

Objeto relacional bases datos 2
Objeto relacional bases datos 2Objeto relacional bases datos 2
Objeto relacional bases datos 2Velmuz Buzz
 
Analisis de requerimiento
Analisis de requerimientoAnalisis de requerimiento
Analisis de requerimientoturlahackers
 
Ejemplo plan de desarrollo de software rup
Ejemplo plan de desarrollo de software rupEjemplo plan de desarrollo de software rup
Ejemplo plan de desarrollo de software rupXochitl Saucedo Muñoz
 
Documentar Software con PUDS
Documentar Software con PUDSDocumentar Software con PUDS
Documentar Software con PUDSFabiana Venuti
 
Diagrama UML de Clases
Diagrama UML de ClasesDiagrama UML de Clases
Diagrama UML de ClasesAdal Dg
 
Taller casos de prueba
Taller casos de pruebaTaller casos de prueba
Taller casos de pruebaAndrés Grosso
 
Análisis de la importancia del uso de metodologías de desarrollo y métricas d...
Análisis de la importancia del uso de metodologías de desarrollo y métricas d...Análisis de la importancia del uso de metodologías de desarrollo y métricas d...
Análisis de la importancia del uso de metodologías de desarrollo y métricas d...Joan Fernando Chipia Lobo
 
Encapsulamento em Orientação a Objetos
Encapsulamento em Orientação a ObjetosEncapsulamento em Orientação a Objetos
Encapsulamento em Orientação a ObjetosDaniel Brandão
 
Modelado basados en escenarios
Modelado basados en escenariosModelado basados en escenarios
Modelado basados en escenariosUCATEBA
 
UML - Casos de Uso y Diagramas de Clase
UML - Casos de Uso y Diagramas de ClaseUML - Casos de Uso y Diagramas de Clase
UML - Casos de Uso y Diagramas de ClaseGuillermo Díaz
 
Técnicas de recolección de requerimientos
Técnicas de recolección de requerimientosTécnicas de recolección de requerimientos
Técnicas de recolección de requerimientosJoaquin Artavia Chaves
 
Polimorfismo en Java
Polimorfismo en JavaPolimorfismo en Java
Polimorfismo en Javaricardomore94
 
Fundamentos de Pruebas de Software - Apendices
Fundamentos de Pruebas de Software - ApendicesFundamentos de Pruebas de Software - Apendices
Fundamentos de Pruebas de Software - ApendicesProfessional Testing
 

La actualidad más candente (20)

Objeto relacional bases datos 2
Objeto relacional bases datos 2Objeto relacional bases datos 2
Objeto relacional bases datos 2
 
Analisis de requerimiento
Analisis de requerimientoAnalisis de requerimiento
Analisis de requerimiento
 
Padrões de Projeto de Software
Padrões de Projeto de SoftwarePadrões de Projeto de Software
Padrões de Projeto de Software
 
Ejemplo plan de desarrollo de software rup
Ejemplo plan de desarrollo de software rupEjemplo plan de desarrollo de software rup
Ejemplo plan de desarrollo de software rup
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
Documentar Software con PUDS
Documentar Software con PUDSDocumentar Software con PUDS
Documentar Software con PUDS
 
Struts en Java
Struts en JavaStruts en Java
Struts en Java
 
Diagrama UML de Clases
Diagrama UML de ClasesDiagrama UML de Clases
Diagrama UML de Clases
 
Patron Singleton
Patron SingletonPatron Singleton
Patron Singleton
 
Taller casos de prueba
Taller casos de pruebaTaller casos de prueba
Taller casos de prueba
 
Abstract factory
Abstract factoryAbstract factory
Abstract factory
 
Análisis de la importancia del uso de metodologías de desarrollo y métricas d...
Análisis de la importancia del uso de metodologías de desarrollo y métricas d...Análisis de la importancia del uso de metodologías de desarrollo y métricas d...
Análisis de la importancia del uso de metodologías de desarrollo y métricas d...
 
Encapsulamento em Orientação a Objetos
Encapsulamento em Orientação a ObjetosEncapsulamento em Orientação a Objetos
Encapsulamento em Orientação a Objetos
 
Diseño de patrones
Diseño de patronesDiseño de patrones
Diseño de patrones
 
Modelado basados en escenarios
Modelado basados en escenariosModelado basados en escenarios
Modelado basados en escenarios
 
UML - Casos de Uso y Diagramas de Clase
UML - Casos de Uso y Diagramas de ClaseUML - Casos de Uso y Diagramas de Clase
UML - Casos de Uso y Diagramas de Clase
 
Técnicas de recolección de requerimientos
Técnicas de recolección de requerimientosTécnicas de recolección de requerimientos
Técnicas de recolección de requerimientos
 
Modelo rup
Modelo rupModelo rup
Modelo rup
 
Polimorfismo en Java
Polimorfismo en JavaPolimorfismo en Java
Polimorfismo en Java
 
Fundamentos de Pruebas de Software - Apendices
Fundamentos de Pruebas de Software - ApendicesFundamentos de Pruebas de Software - Apendices
Fundamentos de Pruebas de Software - Apendices
 

Destacado

Patron de diseño iterator
Patron de diseño iteratorPatron de diseño iterator
Patron de diseño iteratorDaniel Santillan
 
Proyecto final OOP
Proyecto final OOPProyecto final OOP
Proyecto final OOPcolli03
 
Webinar IFML en Español
Webinar IFML en EspañolWebinar IFML en Español
Webinar IFML en EspañolMatteo Silva
 
Architecture in agile projects
Architecture in agile projectsArchitecture in agile projects
Architecture in agile projectsLeonardo Rosales
 
Análisis de arquitecturas de software
Análisis de arquitecturas de softwareAnálisis de arquitecturas de software
Análisis de arquitecturas de softwareJorge Rodriguez
 
Patrones de diseño II
Patrones de diseño IIPatrones de diseño II
Patrones de diseño IIkaolong
 
Patrones para asignar responsabilidades. grasp
Patrones para asignar responsabilidades. graspPatrones para asignar responsabilidades. grasp
Patrones para asignar responsabilidades. graspJuan Pablo Bustos Thames
 
1.1ARQUITECTURA DE CUATRO MAS UN VISTAS
1.1ARQUITECTURA DE  CUATRO  MAS UN VISTAS1.1ARQUITECTURA DE  CUATRO  MAS UN VISTAS
1.1ARQUITECTURA DE CUATRO MAS UN VISTASadolfo0890
 
Patron Template
Patron TemplatePatron Template
Patron TemplateAn3s
 
Interaction Flow Modeling Language: updates on the Beta2 version - by the OMG...
Interaction Flow Modeling Language: updates on the Beta2 version - by the OMG...Interaction Flow Modeling Language: updates on the Beta2 version - by the OMG...
Interaction Flow Modeling Language: updates on the Beta2 version - by the OMG...Marco Brambilla
 
El diagrama en la arquitectura.
El diagrama en la arquitectura.El diagrama en la arquitectura.
El diagrama en la arquitectura.Luis Xhaparro
 
IFML - The interaction flow modeling language, the OMG standard for UI modeli...
IFML - The interaction flow modeling language, the OMG standard for UI modeli...IFML - The interaction flow modeling language, the OMG standard for UI modeli...
IFML - The interaction flow modeling language, the OMG standard for UI modeli...Marco Brambilla
 
IFML - Interaction Flow Modeling Language - tutorial on UI and UX modeling &...
IFML -  Interaction Flow Modeling Language - tutorial on UI and UX modeling &...IFML -  Interaction Flow Modeling Language - tutorial on UI and UX modeling &...
IFML - Interaction Flow Modeling Language - tutorial on UI and UX modeling &...Marco Brambilla
 
Why We Need Architects (and Architecture) on Agile Projects
Why We Need Architects (and Architecture) on Agile ProjectsWhy We Need Architects (and Architecture) on Agile Projects
Why We Need Architects (and Architecture) on Agile ProjectsRebecca Wirfs-Brock
 
2 1 vistas arquitectonicas
2 1 vistas arquitectonicas2 1 vistas arquitectonicas
2 1 vistas arquitectonicaslandeta_p
 
Especificación de Arquitectura de Software
Especificación de Arquitectura de SoftwareEspecificación de Arquitectura de Software
Especificación de Arquitectura de SoftwareSoftware Guru
 
Arquitecturas de software - Parte 1
Arquitecturas de software - Parte 1Arquitecturas de software - Parte 1
Arquitecturas de software - Parte 1Marta Silvia Tabares
 
Arquitectura De Software Para Dummies
Arquitectura De Software Para DummiesArquitectura De Software Para Dummies
Arquitectura De Software Para DummiesSorey García
 
Chapter 5 software design
Chapter 5 software designChapter 5 software design
Chapter 5 software designPiyush Gogia
 
Lean Software Development Principles
Lean Software Development PrinciplesLean Software Development Principles
Lean Software Development PrinciplesJohn Vajda
 

Destacado (20)

Patron de diseño iterator
Patron de diseño iteratorPatron de diseño iterator
Patron de diseño iterator
 
Proyecto final OOP
Proyecto final OOPProyecto final OOP
Proyecto final OOP
 
Webinar IFML en Español
Webinar IFML en EspañolWebinar IFML en Español
Webinar IFML en Español
 
Architecture in agile projects
Architecture in agile projectsArchitecture in agile projects
Architecture in agile projects
 
Análisis de arquitecturas de software
Análisis de arquitecturas de softwareAnálisis de arquitecturas de software
Análisis de arquitecturas de software
 
Patrones de diseño II
Patrones de diseño IIPatrones de diseño II
Patrones de diseño II
 
Patrones para asignar responsabilidades. grasp
Patrones para asignar responsabilidades. graspPatrones para asignar responsabilidades. grasp
Patrones para asignar responsabilidades. grasp
 
1.1ARQUITECTURA DE CUATRO MAS UN VISTAS
1.1ARQUITECTURA DE  CUATRO  MAS UN VISTAS1.1ARQUITECTURA DE  CUATRO  MAS UN VISTAS
1.1ARQUITECTURA DE CUATRO MAS UN VISTAS
 
Patron Template
Patron TemplatePatron Template
Patron Template
 
Interaction Flow Modeling Language: updates on the Beta2 version - by the OMG...
Interaction Flow Modeling Language: updates on the Beta2 version - by the OMG...Interaction Flow Modeling Language: updates on the Beta2 version - by the OMG...
Interaction Flow Modeling Language: updates on the Beta2 version - by the OMG...
 
El diagrama en la arquitectura.
El diagrama en la arquitectura.El diagrama en la arquitectura.
El diagrama en la arquitectura.
 
IFML - The interaction flow modeling language, the OMG standard for UI modeli...
IFML - The interaction flow modeling language, the OMG standard for UI modeli...IFML - The interaction flow modeling language, the OMG standard for UI modeli...
IFML - The interaction flow modeling language, the OMG standard for UI modeli...
 
IFML - Interaction Flow Modeling Language - tutorial on UI and UX modeling &...
IFML -  Interaction Flow Modeling Language - tutorial on UI and UX modeling &...IFML -  Interaction Flow Modeling Language - tutorial on UI and UX modeling &...
IFML - Interaction Flow Modeling Language - tutorial on UI and UX modeling &...
 
Why We Need Architects (and Architecture) on Agile Projects
Why We Need Architects (and Architecture) on Agile ProjectsWhy We Need Architects (and Architecture) on Agile Projects
Why We Need Architects (and Architecture) on Agile Projects
 
2 1 vistas arquitectonicas
2 1 vistas arquitectonicas2 1 vistas arquitectonicas
2 1 vistas arquitectonicas
 
Especificación de Arquitectura de Software
Especificación de Arquitectura de SoftwareEspecificación de Arquitectura de Software
Especificación de Arquitectura de Software
 
Arquitecturas de software - Parte 1
Arquitecturas de software - Parte 1Arquitecturas de software - Parte 1
Arquitecturas de software - Parte 1
 
Arquitectura De Software Para Dummies
Arquitectura De Software Para DummiesArquitectura De Software Para Dummies
Arquitectura De Software Para Dummies
 
Chapter 5 software design
Chapter 5 software designChapter 5 software design
Chapter 5 software design
 
Lean Software Development Principles
Lean Software Development PrinciplesLean Software Development Principles
Lean Software Development Principles
 

Similar a Patron Memento

Unidad 1, 2 y_3_algoritmos
Unidad 1, 2 y_3_algoritmosUnidad 1, 2 y_3_algoritmos
Unidad 1, 2 y_3_algoritmosGrisell d?z
 
Administración de memoria - arreglos estáticos y dinámicos
Administración de memoria - arreglos estáticos y dinámicosAdministración de memoria - arreglos estáticos y dinámicos
Administración de memoria - arreglos estáticos y dinámicosUVM
 
Seguridad en access
Seguridad en accessSeguridad en access
Seguridad en accessssuser3a82fb
 
Programacion Orienta A Objetos
Programacion Orienta A ObjetosProgramacion Orienta A Objetos
Programacion Orienta A ObjetosDavid
 
Introducción a Java Persistence API
Introducción a Java Persistence APIIntroducción a Java Persistence API
Introducción a Java Persistence APIJose Martinez
 
Tema 8 desarrollo de aplicaciones en java por gio
Tema 8   desarrollo de aplicaciones en java por gioTema 8   desarrollo de aplicaciones en java por gio
Tema 8 desarrollo de aplicaciones en java por gioRobert Wolf
 
Configuracion de variables de entorno
Configuracion de variables de entornoConfiguracion de variables de entorno
Configuracion de variables de entornoSheyli Patiño
 
Desarrollo android almacenamiento de datos
Desarrollo android    almacenamiento de datosDesarrollo android    almacenamiento de datos
Desarrollo android almacenamiento de datosFernando Cejas
 
JAVA2: Segunda Lección
JAVA2: Segunda LecciónJAVA2: Segunda Lección
JAVA2: Segunda LecciónJose Martinez
 

Similar a Patron Memento (20)

Estructuras y clases
Estructuras y clasesEstructuras y clases
Estructuras y clases
 
MéTodos En Java
MéTodos En JavaMéTodos En Java
MéTodos En Java
 
Unidad 1, 2 y_3_algoritmos
Unidad 1, 2 y_3_algoritmosUnidad 1, 2 y_3_algoritmos
Unidad 1, 2 y_3_algoritmos
 
Memoria dinamica
Memoria dinamicaMemoria dinamica
Memoria dinamica
 
Administración de memoria - arreglos estáticos y dinámicos
Administración de memoria - arreglos estáticos y dinámicosAdministración de memoria - arreglos estáticos y dinámicos
Administración de memoria - arreglos estáticos y dinámicos
 
Modelo Estatico
Modelo EstaticoModelo Estatico
Modelo Estatico
 
Seguridad en access
Seguridad en accessSeguridad en access
Seguridad en access
 
Modelo Persistente
Modelo PersistenteModelo Persistente
Modelo Persistente
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Programacion Orienta A Objetos
Programacion Orienta A ObjetosProgramacion Orienta A Objetos
Programacion Orienta A Objetos
 
Introducción a Java Persistence API
Introducción a Java Persistence APIIntroducción a Java Persistence API
Introducción a Java Persistence API
 
Tema 11
Tema 11Tema 11
Tema 11
 
Tutorial de flash
Tutorial de flashTutorial de flash
Tutorial de flash
 
Tema 8 desarrollo de aplicaciones en java por gio
Tema 8   desarrollo de aplicaciones en java por gioTema 8   desarrollo de aplicaciones en java por gio
Tema 8 desarrollo de aplicaciones en java por gio
 
P2C2 Introducción a JEE5
P2C2 Introducción a JEE5P2C2 Introducción a JEE5
P2C2 Introducción a JEE5
 
Configuracion de variables de entorno
Configuracion de variables de entornoConfiguracion de variables de entorno
Configuracion de variables de entorno
 
Desarrollo android almacenamiento de datos
Desarrollo android    almacenamiento de datosDesarrollo android    almacenamiento de datos
Desarrollo android almacenamiento de datos
 
JAVA2: Segunda Lección
JAVA2: Segunda LecciónJAVA2: Segunda Lección
JAVA2: Segunda Lección
 
Programacion en JAVA 2
Programacion en JAVA 2Programacion en JAVA 2
Programacion en JAVA 2
 
Modelo Simulado
Modelo SimuladoModelo Simulado
Modelo Simulado
 

Último

LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 

Último (20)

LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 

Patron Memento

  • 2. Frecuentemente los desarrolladores necesitan guardar el estado de un objeto para recuperarlo más tarde. Esto claro, sin perder el encapsulamiento del objeto. Una de las maneras de hacerlo, es utilizando el patrón de diseño Memento . En esta presentación vamos a ver como funciona, y un ejemplo práctico . PATRONES MEMENTO
  • 3. Propósito El objetivo principal de Memento es guardar el estado de un objeto sin romper el encapsulamiento del mismo. PATRONES MEMENTO
  • 4.
  • 5. UML PATRONES MEMENTO
  • 6.
  • 7.
  • 8. UML, (Interacción) PATRONES MEMENTO
  • 9.
  • 10.
  • 11.
  • 12. Ejemplo Un ejemplo donde se guarda temporalmente el estado de un perspectiva de venta, para después recuperarlo La idea es tener una clase PersVenta que seria la Originator, es decir la que crea y usa el Memento Una clase MemoriaPerspectiva que seria la CareTaker, es decir el responsable de la custodia del Memento Una clase Memento, que como dice el nombre es el Memento PATRONES MEMENTO
  • 13. public class PersVenta{ private String nombre, telefono; private double presupuesto; public void setNombre(String nombre){ System.out.println(" Nombre "+ nombre); this .nombre = nombre; } public void setTelefono(String telefono){ System.out.println(" Telefono : "+ telefono); this .telefono = telefono; } public void setPresupuesto(double presupuesto){ System.out.println(" Presupuesto : "+ presupuesto); this .presupuesto = presupuesto; } Clase Originator Propiedades del estado con métodos set PATRONES MEMENTO
  • 14. . . . . public String getNombre(){ return nombre; } public String getTelefono() { return telefono;} public Double getPresupuesto() { return presupuesto;} public Memento SalvaMemento(){ System.out.println(" Salvando estado -- "); return new Memento(nombre,telefono,presupuesto); } public void RestauraMemento(Memento memento){ System.out.println(" Restaurando estado -- "); this .setNombre(memento.getNombre()); this .setTelefono(memento.getTelefono()); this .setPresupuesto(memento.getPresupuesto()); } } Propiedades del estado con métodos get Crea el Memento Restaura el Memento MEMENTO PATRONES
  • 15. Clase Memento que guarda el estado del Objeto public class Memento{ private String nombre; private String telefono; private double presupuesto; public Memento(String nombre, String telefono, double presupuesto){ this .nombre = nombre; this .telefono = telefono; this .presupuesto = presupuesto; } Mismas propiedades del Objeto a guardar Constructor de la Clase PATRONES MEMENTO
  • 16. . . . . public void setNombre(String nombre){ this .nombre = nombre; } public void setTelefono(String telefono){ this .telefono = telefono; } public void setPresupuesto(double presupuesto){ this .presupuesto = presupuesto; } public String getNombre(){ return nombre; } public String getTelefono() { return telefono;} public Double getPresupuesto() { return presupuesto;} } Métodos set() y get() del Memento PATRONES MEMENTO
  • 17. public class MemoriaPerspectiva{ private Memento memento; public void setMemento (Memento memento){ this.memento = memento; } public Memento getMemento (){ return memento;} } Clase Caretaker, es la que cuida el Memento PATRONES MEMENTO
  • 18. public class MainApp{ public static void main(String[] args){ PersVenta pv = new PersVenta(); pv.setNombre(" Camilo "); pv.setTelefono(" 316 7985 "); pv.setPresupuesto(15000); MemoriaPerspectiva m = new MemoriaPerspectiva(); m.setMemento(pv.SalvaMemento()); pv.setNombre(" Andres "); pv.setTelefono(" 314 5485 "); pv.setPresupuesto(18000); pv.RestauraMemento(m.getMemento()); } } Para finalizar la Clase donde está el Main() Crea un Objeto de perspectiva de venta y le introduce propiedades Guarda el estado Vuelve y cambia el Originador Restaura el estado guardado PATRONES MEMENTO
  • 19. La salida del programa anterior sería: PATRONES MEMENTO