基础与定义
- 保存一个对象的某个状态,以便在适当的时候恢复对象
 - 类型:行为型
 
使用场景:
- 保存及恢复数据相关业务场景,比如: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();
    }
}