• 18、Memento 备忘录模式


    例如:用

    1Memento

    Memento

    Memento退

    使mementomemento

    memento-

    1.

    访memento

    2.

    使

    3.

    mementomemento

    2

    1.

    memento使

     package cn.design.behavior.memento;
     
     /**
      * @author lin
      * @version 1.0
      * @date 2020/8/2 22:13
      * @Description 
      */
     public class Memento {
     
         private String state;
     
         public Memento(String state) {
             this.state = state;
        }
     
         public String getState() {
             return state;
        }
     }
     

    Memento

    2.

    使setStatesaveStateToMementoMementoCareTakermemento

    getStateFromMemento

     package cn.design.behavior.memento;
     
     /**
      * @author lin
      * @version 1.0
      * @date 2020/8/2 22:14
      * @Description TODO
      */
     public class Originator {
         private String state;
     
         public String getState() {
             return state;
        }
     
         public void setState(String state) {
             this.state = state;
        }
     
         public Memento saveStateToMemento(){
             return new Memento(state);
        }
         public void getStateFromMemento(Memento memento){
             state=memento.getState();
        }
     
     }
     

    3. CareTaker

    mementoget使

     package cn.design.behavior.memento;
     
     import java.util.ArrayList;
     import java.util.List;
     
     /**
      * @author lin
      * @version 1.0
      * @date 2020/8/2 22:16
      * @Description TODO
      */
     public class CareTaker {
     
         private List<Memento> mementoList = new ArrayList<>();
     
         public void add(Memento m) {
             mementoList.add(m);
        }
     
         public Memento get(int index) {
             return mementoList.get(index);
        }
     
     }
     

    4.

    使getState

    getStateFromMementoOriginator使getState

     package cn.design.behavior.memento;
     
     /**
      * @author lin
      * @version 1.0
      * @date 2020/8/2 22:18
      * @Description TODO
      */
     public class MementoMain {
         public static void main(String[] args) {
             Originator originator = new Originator();
             CareTaker careTaker = new CareTaker();
             originator.setState("state-1");
             originator.setState("state-2");
             careTaker.add(originator.saveStateToMemento());
     
             originator.setState("state-3");
             careTaker.add(originator.saveStateToMemento());  

            originator.setState("state-4")
            System.out.println("" + originator.getState());  

            originator.getStateFromMemento(careTaker.get(0))
            System.out.println("First saved state "+ originator.getState());  

            originator.getStateFromMemento(careTaker.get(1))
            System.out.println("Second saved state "+ originator.getState());  

       

    3Memento

    Memento

    Originator ()

    OriginatorMementoMementoOriginatorMementoGamer

    Memento ()

    MementoOriginator- -MementoOriginatorMemento( API)

    wide interface- ( API)

    Memento( API)(API)Memento使(API)Originator

    narrowinterface ( API)

    MementoCaretaker( API)"( API )Memento( API),MementoOriginatorMemento

    Caretaker ()

    CaretakerOriginator OriginatorOriginatorMementoCaretaker MementoOriginatorCaretaker- -Memento

    4

    使memento

    1. Memento

    2. 使

    3. /便

    1. 使

    2. JavaScript使访

    使 1/2

    12使+

    Memento

    1. 公众号发哥讲

      这是一个稍偏基础和偏技术的公众号,甚至其中包括一些可能阅读量很低的包含代码的技术文,不知道你是不是喜欢,期待你的关注。

      img

      如果你觉得文章还不错,就请点击右上角选择发送给朋友或者转发到朋友圈~

      ● 扫码关注我们

      据说看到好文章不推荐的人,服务器容易宕机!

      本文版权归发哥讲博客园共有,原创文章,未经允许不得转载,否则保留追究法律责任的权利。

       

  • 相关阅读:
    python调用函数实现数据的增删改查(1)
    VA Code编写html(1)
    python 跑服务器,访问自己制作的简单页面
    python调用函数实现数据的增删改查(2)
    VS Code编写html(2)
    python编写简单的html登陆页面(4)
    python编写简单的html登陆页面(1)
    虚拟机端口映射!
    VIM 主题管理
    Vim 窗口管理插件
  • 原文地址:https://www.cnblogs.com/naimao/p/13446518.html
Copyright © 2020-2023  润新知