zoukankan      html  css  js  c++  java
  • 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 编码 整理总结
    搜索目录下 匹配文件中 最新的文件 路径
    DIV+CSS实现页面居中
    反射怎样调用另外一个类的私有成员
    ASP.NET中路径相关的一些问题
    相对定位以及父子节点之间的关系
    C#垃圾回收机制
    javascript和html中关于自定义属性的问题
    在C#中使用指针(哈哈,炫吧!)
    jquery中过滤器的应用,实现QQ的TAB效果
  • 原文地址:https://www.cnblogs.com/naimao/p/13446518.html
Copyright © 2011-2022 走看看