• 备忘录模式


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

    public class Originator {  

    String stata;

    static Memento temp;

    public String setState(String str){

    //设置状态

    System.out.println("State="+str);

    return str; }

    public Memento CreateMemento(String state){

    temp = new Memento(state);

    return temp; }

    public void SetMemento(Memento memento){

    System.out.println("恢复初始状态");

    System.out.println("State="+temp.State()); } }

     //管理类

    public class Caretaker {
    Memento memento;
    }

    //备忘录类  

    public class Memento {

    String state;

    public Memento(String state){

    this.state = state; }

    public String State(){

    return state; } }

    //测试类

    public class Test {

    public static void main(String[] args) {

    Originator o = new Originator();

    String str = o.setState("ON"); //初始状态为"On"

    Caretaker c = new Caretaker();

    c.memento = o.CreateMemento(str); //保存状态时,由于有了很多的封装,可以隐藏Originator的实现细节

    o.setState("OFF"); //Originator改变了状态属性为"OFF"

    o.SetMemento(c.memento); //恢复初始状态 } }

  • 相关阅读:
    spring cloud项目搭建
    获取iframe的window对象
    数学杂谈 #7
    [AGC023D] Go Home
    JOISC 2021 部分题解
    [NOI2017]泳池
    [NOI2016] 循环之美
    [NOI2016] 优秀的拆分
    [LG P3676]小清新数据结构题
    [ARC113F]Social Distance
  • 原文地址:https://www.cnblogs.com/lee0oo0/p/2521414.html
Copyright © 2020-2023  润新知