zoukankan      html  css  js  c++  java
  • 第十八章 备忘录模式

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

    Caretaker负责不暴露Originator的内部细节,Memento负责备忘字段。用星姐的话----完美!\> <///

    不足:角色状态要完整存储到备忘录对象中,如果状态数据很大很多,在资源消耗上,将非常耗内存。

    /**
     * Created by hero on 16-4-5.
     */
    public class Originator {
        private String state;
    
        public Memento createMemento(){
            return new Memento(state);
        }
    
        public void recoveryState(Memento memento){
            state = memento.getState();
        }
    
        public Originator() {
        }
    
        public Originator(String state) {
            this.state = state;
        }
    
        public String getState() {
            return state;
        }
    
        public void setState(String state) {
            this.state = state;
        }
    }
    /**
     * Created by hero on 16-4-5.
     */
    public class Memento {
        private String state;
    
        public Memento(String state) {
            this.state = state;
        }
    
        public String getState() {
            return state;
        }
    
        //不能有set方法
    }
    /**
     * Created by hero on 16-4-5.
     */
    public class Caretaker {
        private Memento memento;
    
        public Memento getMemento() {
            return memento;
        }
    
        public void setMemento(Memento memento) {
            this.memento = memento;
        }
    }
    public class Main {
    
        public static void main(String[] args) {
            Originator originator = new Originator();
            originator.setState("on");
            Caretaker caretaker = new Caretaker();
            caretaker.setMemento(originator.createMemento());
            originator.setState("off");
            originator.recoveryState(caretaker.getMemento());
        }
    }
  • 相关阅读:
    linux上用selenium登录新浪微博,获取用户关注的用户id
    JS、Python对字符串的编码函数
    在ubuntu系统下装hadoop
    windows下python3.x的安装与使用
    python多线程、多进程、协程的使用
    python简单操作redis
    操作系统基础知识
    排序算法汇总
    网易的突然袭击
    小红书视频面试
  • 原文地址:https://www.cnblogs.com/littlehoom/p/5357251.html
Copyright © 2011-2022 走看看