package com.example.demo.designpattern.memento;
public class GameMemento {
private String value;
private String state;
public String getValue() {
return value;
}
public GameMemento(String value, String state) {
this.value = value;
this.state = state;
}
public void setValue(String value) {
this.value = value;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
}
package com.example.demo.designpattern.memento;
public class GameOriginator {
private String value;
private String state;
public GameOriginator(String value, String state) {
this.value = value;
this.state = state;
}
public GameOriginator() {
}
public String getValue() {
return value;
}
@Override
public String toString() {
return "GameOriginator{" +
"value='" + value + '\'' +
", state='" + state + '\'' +
'}';
}
public void setValue(String value) {
this.value = value;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
public GameMemento saveOriginatorToMemento() {
return new GameMemento(value,state);
}
public void getMementoTOOriginator(GameMemento gameMemento) {
this.state=gameMemento.getState();
this.value=gameMemento.getValue();
}
}
package com.example.demo.designpattern.memento;
import java.util.ArrayList;
import java.util.List;
public class GameCareTaker {
private List<GameMemento> gameMementoList = new ArrayList<>();
public void addGameMementoList(GameMemento gameMemento) {
this.gameMementoList.add(gameMemento);
}
public GameMemento getGameMementoList(int step){
return this.gameMementoList.get(step);
}
}
package com.example.demo.designpattern.memento;
public class MementoDemo {
public static void main(String[] args) {
GameCareTaker gameCareTaker = new GameCareTaker();
GameOriginator gameOriginator = new GameOriginator("100","1");
gameOriginator.setState("50");
gameOriginator.setState("2");
gameCareTaker.addGameMementoList(gameOriginator.saveOriginatorToMemento());
gameOriginator.setState("30");
gameOriginator.setState("3");
gameCareTaker.addGameMementoList(gameOriginator.saveOriginatorToMemento());
GameMemento gameMemento = gameCareTaker.getGameMementoList(0);
gameOriginator.getMementoTOOriginator(gameMemento);
System.out.println(gameOriginator.toString());
}
}