• 备忘录模式


    定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样就可以将该对象恢复到原先保存的状态

    class Originator {  
        private String state = "";  
          
        public String getState() {  
            return state;  
        }  
        public void setState(String state) {  
            this.state = state;  
        }  
        public Memento createMemento(){  
            return new Memento(this.state);  
        }  
        public void restoreMemento(Memento memento){  
            this.setState(memento.getState());  
        }  
    }  
      
    class Memento {  
        private String state = "";  
        public Memento(String state){  
            this.state = state;  
        }  
        public String getState() {  
            return state;  
        }  
        public void setState(String state) {  
            this.state = state;  
        }  
    }  
    class Caretaker {  
        private Memento memento;  
        public Memento getMemento(){  
            return memento;  
        }  
        public void setMemento(Memento memento){  
            this.memento = memento;  
        }  
    }  
    public class Client {  
        public static void main(String[] args){  
            Originator originator = new Originator();  
            originator.setState("状态1");  
            System.out.println("初始状态:"+originator.getState());  
            Caretaker caretaker = new Caretaker();  
            caretaker.setMemento(originator.createMemento());  
            originator.setState("状态2");  
            System.out.println("改变后状态:"+originator.getState());  
            originator.restoreMemento(caretaker.getMemento());  
            System.out.println("恢复后状态:"+originator.getState());  
        }  
    }  
  • 相关阅读:
    Apache Kylin v3.0.0-alpha 发布
    Apache Kylin在美团点评的应用
    Kylin 架构模块简介
    Kylin 1 背景、历史与使命
    谈MongoDB的应用场景
    Linux 内存Cache和Buffer理解
    Linux 下查看内存使用情况方法总结
    mongodb 集群配置文件
    MongoDB bindIp 与 bindIpAll
    MongoDB 权限认证
  • 原文地址:https://www.cnblogs.com/chenyishi/p/9139047.html
Copyright © 2020-2023  润新知