zoukankan      html  css  js  c++  java
  • 23种设计模式之备忘录模式

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

     

    package designMode.memento;
    
    class Originator {
        private String state;
        
        public Memento createMemento(){
            return new Memento(state);
        }
        
        public void setMemento(Memento memento){
            state = memento.getState();
        }
        
        public void show(){
            System.out.println("State=:"+state);
        }
        public String getState() {
            return state;
        }
    
        public void setState(String state) {
            this.state = state;
        }
    }
    package designMode.memento;
    
    class Memento {
        private String state;
        
        public String getState() {
            return state;
        }
    
        public void setState(String state) {
            this.state = state;
        }
    
        public Memento(String state){
            this.state = state;
        }
    }
    package designMode.memento;
    
    class Caretaker {
        
        private Memento memento;
    
        public Memento getMemento() {
            return memento;
        }
    
        public void setMemento(Memento memento) {
            this.memento = memento;
        }
        
    }
    package designMode.memento;
    
    class Test {
        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();
        }
    }
  • 相关阅读:
    Oracle 数据库 用脚本建表空间
    C++ 类中封装Win32API的回调函数
    在MVC 4 中使用自定义Membership
    机试题目
    sscanf()
    字符串转化为整数
    有序数组中一对数的和为特定数
    把一个数组划分成左边奇数右边偶数
    cocos2dx将背景色改为白色
    字符串单词翻转
  • 原文地址:https://www.cnblogs.com/lxcmyf/p/7410450.html
Copyright © 2011-2022 走看看