SlideShare ist ein Scribd-Unternehmen logo
1 von 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

Weitere ähnliche Inhalte

Was ist angesagt?

Modelo de Ciclo de Vida de Prototipado Evolutivo
Modelo de Ciclo de Vida de Prototipado EvolutivoModelo de Ciclo de Vida de Prototipado Evolutivo
Modelo de Ciclo de Vida de Prototipado EvolutivoIván Cornejo
 
Diagrama entidad-relacion normalización
Diagrama entidad-relacion normalizaciónDiagrama entidad-relacion normalización
Diagrama entidad-relacion normalizacióncintiap25
 
Patrón de diseño Modelo-Vista-Controlador (MVC)
Patrón de diseño Modelo-Vista-Controlador (MVC)Patrón de diseño Modelo-Vista-Controlador (MVC)
Patrón de diseño Modelo-Vista-Controlador (MVC)Jose R. Hilera
 
Programación Orientada a Objetos - herencia y polimorfismo
Programación Orientada a Objetos - herencia y polimorfismoProgramación Orientada a Objetos - herencia y polimorfismo
Programación Orientada a Objetos - herencia y polimorfismoAlvaro Enrique Ruano
 
Conceptos de POO (Programacion Orientada a Objetos)
Conceptos de POO (Programacion Orientada a Objetos)Conceptos de POO (Programacion Orientada a Objetos)
Conceptos de POO (Programacion Orientada a Objetos)Josue Lara Reyes
 
Diagramas de paquetes
Diagramas de paquetesDiagramas de paquetes
Diagramas de paquetesMoises Cruz
 
Constructores en Java
Constructores en JavaConstructores en Java
Constructores en JavaUCE
 
Metodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A ObjetosMetodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A Objetoshector_h30
 
Programación Orientada a Objetos - Resumen
Programación Orientada a Objetos - ResumenProgramación Orientada a Objetos - Resumen
Programación Orientada a Objetos - ResumenKarlytoz_36
 
Conceptos básicos de programación orientada a objetos (poo)
Conceptos básicos de programación orientada a objetos (poo)Conceptos básicos de programación orientada a objetos (poo)
Conceptos básicos de programación orientada a objetos (poo)Maria Garcia
 

Was ist angesagt? (20)

Modelo de Ciclo de Vida de Prototipado Evolutivo
Modelo de Ciclo de Vida de Prototipado EvolutivoModelo de Ciclo de Vida de Prototipado Evolutivo
Modelo de Ciclo de Vida de Prototipado Evolutivo
 
Unidad 3: Herencia Ejercicio 2
Unidad 3: Herencia Ejercicio 2Unidad 3: Herencia Ejercicio 2
Unidad 3: Herencia Ejercicio 2
 
Diagrama entidad-relacion normalización
Diagrama entidad-relacion normalizaciónDiagrama entidad-relacion normalización
Diagrama entidad-relacion normalización
 
PRESENTACIÓN RUP
PRESENTACIÓN RUPPRESENTACIÓN RUP
PRESENTACIÓN RUP
 
Patrón de diseño Modelo-Vista-Controlador (MVC)
Patrón de diseño Modelo-Vista-Controlador (MVC)Patrón de diseño Modelo-Vista-Controlador (MVC)
Patrón de diseño Modelo-Vista-Controlador (MVC)
 
Programación Orientada a Objetos - herencia y polimorfismo
Programación Orientada a Objetos - herencia y polimorfismoProgramación Orientada a Objetos - herencia y polimorfismo
Programación Orientada a Objetos - herencia y polimorfismo
 
Modelo de entidad relación extendido
Modelo de entidad relación extendidoModelo de entidad relación extendido
Modelo de entidad relación extendido
 
Conceptos de POO (Programacion Orientada a Objetos)
Conceptos de POO (Programacion Orientada a Objetos)Conceptos de POO (Programacion Orientada a Objetos)
Conceptos de POO (Programacion Orientada a Objetos)
 
Modelamiento software
Modelamiento softwareModelamiento software
Modelamiento software
 
TRIGGERS O DISPARADORES
TRIGGERS O DISPARADORESTRIGGERS O DISPARADORES
TRIGGERS O DISPARADORES
 
Abstract factory
Abstract factoryAbstract factory
Abstract factory
 
Diagramas de paquetes
Diagramas de paquetesDiagramas de paquetes
Diagramas de paquetes
 
Constructores en Java
Constructores en JavaConstructores en Java
Constructores en Java
 
MVC
MVCMVC
MVC
 
Modelo 4+1
Modelo 4+1Modelo 4+1
Modelo 4+1
 
Metodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A ObjetosMetodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A Objetos
 
Programación Orientada a Objetos - Resumen
Programación Orientada a Objetos - ResumenProgramación Orientada a Objetos - Resumen
Programación Orientada a Objetos - Resumen
 
Metodología Mobile-D.pdf
Metodología Mobile-D.pdfMetodología Mobile-D.pdf
Metodología Mobile-D.pdf
 
Modelo V
Modelo VModelo V
Modelo V
 
Conceptos básicos de programación orientada a objetos (poo)
Conceptos básicos de programación orientada a objetos (poo)Conceptos básicos de programación orientada a objetos (poo)
Conceptos básicos de programación orientada a objetos (poo)
 

Andere mochten auch

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
 

Andere mochten auch (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
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Kürzlich hochgeladen

POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 

Kürzlich hochgeladen (10)

POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 

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