• [译]Java 设计模式之备忘录


    (文章翻译来自Java Design Pattern: Memento

    memento是一个保存另外一个对象内部状态拷贝的对象.这样以后就可以将该对象恢复到原先保存的状态.

    在将来时空旅行将成为显示。而备忘录将使时空旅行的关键。主要的讲,它是怎么使一个对象对到它以前的一个状态呢。

    在下面的例子中,你可以你可以通过时空旅行回到你的任何一个年代,而且你可以恢复你以前去过的某一个年代。

    备忘录设计模式类图

    memento

    备忘录设计模式Java代码

    package designpatterns.memento;
    import java.util.List;
    import java.util.ArrayList;
    class Life {
        private String time;
     
        public void set(String time) {
            System.out.println("Setting time to " + time);
            this.time = time;
        }
     
        public Memento saveToMemento() {
            System.out.println("Saving time to Memento");
            return new Memento(time);
        }
     
        public void restoreFromMemento(Memento memento) {
        	time = memento.getSavedTime();
            System.out.println("Time restored from Memento: " + time);
        }
     
        public static class Memento {
            private final String time;
     
            public Memento(String timeToSave) {
            	time = timeToSave;
            }
     
            public String getSavedTime() {
                return time;
            }
        }
    }
     
    public class You {
        public static void main(String[] args) {
            List<Life.Memento> savedTimes = new ArrayList<Life.Memento>();
     
            Life life = new Life();
     
            //time travel and record the eras
            life.set("2000 B.C.");
            savedTimes.add(life.saveToMemento());
            life.set("2000 A.D.");
            savedTimes.add(life.saveToMemento());
            life.set("3000 A.D.");
            savedTimes.add(life.saveToMemento());
            life.set("4000 A.D.");
     
            life.restoreFromMemento(savedTimes.get(0));   
     
        }
    }
    
  • 相关阅读:
    STM32 ~ J-LINK V8 修复
    转移文件
    linux
    STM32 ~ MDK环境下调试程序 HardFault_Handler 相关
    HR_ROS 节点信息
    STM32 ~ 串口DMA通道查找
    CodeBackUP_node_find_serial
    Java问题排查工具箱[转载]
    JDK1.7 ConcurrentHashMap 源码浅析
    JDK1.7 HashMap 源码分析
  • 原文地址:https://www.cnblogs.com/zhangminghui/p/4214572.html
Copyright © 2020-2023  润新知