zoukankan      html  css  js  c++  java
  • 备忘录模式

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

    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());  
        }  
    }  
  • 相关阅读:
    ubutu16.04编译安装apache
    python格式化字符串
    git服务器搭建
    merge into 导致序列跳号
    Apache 强制SSL访问
    pyhton之解析html的表格
    Two modules in a project cannot share the same content root报错解决方案
    hdoj
    hdoj
    QHUOJ
  • 原文地址:https://www.cnblogs.com/chenyishi/p/9139047.html
Copyright © 2011-2022 走看看