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

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

    ● 扫码关注我们

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

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

     

原文地址:https://www.cnblogs.com/naimao/p/13446518.html