Commit 9a715b5f authored by Josue's avatar Josue

Patron Memento

parent 45a42a3c
package org.example.designpatterns.memento;
import org.example.designpatterns.memento.memento.Caretaker;
import org.example.designpatterns.memento.memento.Juego;
import org.example.designpatterns.memento.memento.Originator;
public class App {
public static void main(String[] args) {
String nombreJuego = "Crash Badicoot";
Juego juego = new Juego();
juego.setNombre(nombreJuego);
juego.setCheckpoint(1);
Caretaker caretaker = new Caretaker();
Originator originator = new Originator();
juego = new Juego();
juego.setNombre(nombreJuego);
juego.setCheckpoint(2);
originator.setEstado(juego);
juego = new Juego();
juego.setNombre(nombreJuego);
juego.setCheckpoint(3);
originator.setEstado(juego);
// ESTADO POSICION 0
caretaker.addMemento(originator.guardar());
juego = new Juego();
juego.setNombre(nombreJuego);
juego.setCheckpoint(4);
originator.setEstado(juego);
// ESTADO POSICION 1
caretaker.addMemento(originator.guardar());
juego = new Juego();
juego.setNombre(nombreJuego);
juego.setCheckpoint(5);
originator.setEstado(juego);
// ESTADO POSICION 2
caretaker.addMemento(originator.guardar());
originator.restaurar(caretaker.getMemento(2));
juego = originator.getEstado();
System.out.println(juego);
}
}
package org.example.designpatterns.memento.memento;
import java.util.ArrayList;
public class Caretaker {
private ArrayList<Memento> mementos = new ArrayList<>();
public void addMemento(Memento m) {
mementos.add(m);
}
public Memento getMemento(int index) {
return mementos.get(index);
}
}
package org.example.designpatterns.memento.memento;
public class Juego {
private String nombre;
private int checkpoint;
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public int getCheckpoint() {
return checkpoint;
}
public void setCheckpoint(int checkpoint) {
this.checkpoint = checkpoint;
}
@Override
public String toString() {
return "Juego{" +
"nombre='" + nombre + '\'' +
", checkpoint=" + checkpoint +
'}';
}
}
package org.example.designpatterns.memento.memento;
public class Memento {
private Juego estado;
public Memento(Juego estado) {
this.estado = estado;
}
public Juego getEstado() {
return estado;
}
}
package org.example.designpatterns.memento.memento;
public class Originator {
private Juego estado;
public Juego getEstado() {
return estado;
}
public void setEstado(Juego estado) {
this.estado = estado;
}
public Memento guardar() {
return new Memento(estado);
}
public void restaurar(Memento m) {
this.estado = m.getEstado();
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment