基础与定义
- 保存一个对象的某个状态,以便在适当的时候恢复对象
- 类型:行为型
使用场景:
- 保存及恢复数据相关业务场景,比如:idea的后退,浏览器的后退,游戏的存档等等
缺点:
- 资源占用较多
代码实例
public class Status {
private String statusName;
public String getStatusName() {
return statusName;
}
public void setStatusName(String statusName) {
this.statusName = statusName;
}
public StatusMemento saveToMemento(){
return new StatusMemento(this.statusName);
}
public void undoFromMemento(StatusMemento statusMemento){
this.statusName = statusMemento.getStatusName();
}
}
public class StatusMemento {
private String statusName;
public StatusMemento(String statusName) {
this.statusName = statusName;
}
public String getStatusName() {
return statusName;
}
public void setStatusName(String statusName) {
this.statusName = statusName;
}
}
public class StatsuMementoManager {
private final Stack<StatusMemento> statusMementos = new Stack<>();
public void addMementon(StatusMemento statusMemento){
statusMementos.push(statusMemento);
}
public StatusMemento getStatsuMemento(){
return statusMementos.pop();
}
}