• 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();
        }
    }
  • 相关阅读:
    DEM地形渲染中光源的方向
    python GDAL安装运行后提示找不到proj.db
    AO——将函数栅格数据集保存到磁盘
    arcgis影像分幅图裁剪
    arcgis判断线是否穿过面
    WSL 使用vscode写python
    python-gdal支持filegdb读写
    Chapter5 生长因子、受体和癌症
    Chapter6 胞内信号网络
    【转】B树、B+树、B*树
  • 原文地址:https://www.cnblogs.com/lxcmyf/p/7410450.html
Copyright © 2020-2023  润新知