package memento_pattern;
public class Originator {
private String state;
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
public Memento createMemento() {//Create the memo.
return new Memento(state);
}
public void setMemento(Memento memento) {//Set the memo.
state = memento.getState();
}
public void show() {//Show the current state.
System.out.println("State = " + state);
}
}
package memento_pattern;
public class Memento {
private String state;//Record the origiantor's state.
public Memento(String state) {
this.state = state;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
}
package memento_pattern;
public class Caretaker {
private Memento memento;//Composite the memo so that we can recovery.
public Memento getMemento() {
return memento;
}
public void setMemento(Memento memento) {
this.memento = memento;
}
}
package memento_pattern;
public class Main {
public static void main(String args[]) {
Originator o = new Originator();
o.setState("On");
o.show();
Caretaker c = new Caretaker();
c.setMemento(o.createMemento());
o.setState("Off");
o.show();
o.setMemento(c.getMemento());
o.show();
}
}
This is a general introduction to the 23 design patterns:
https://blog.csdn.net/GZHarryAnonymous/article/details/81567214
See more source code:[GZHarryAnonymous](https://github.com/GZHarryAnonymous/Design_Pattern)