行为型模式-----备忘录模式(Memento)

来源:互联网 发布:tensorflow入门 编辑:程序博客网 时间:2024/05/19 20:59

1、备忘录模式     (类似于数据的备份-恢复)

              目的是:保存一个独享的某个状态,以便在适当的时候恢复对象。

               如:假设有原始类A,A中有很多属性,A可以决定需要备份的属性,备忘录类B是用来存储A的一些内部状态。

                       而类C就是一个用来存储备忘录的,且只能对其存储,而不能进行修改操作。

 

   实例一

     

// 原始类public class Original {private String name;private String pass;// 创建备忘录public Memento createMemento() {final Memento m = new Memento();m.setPass(this.getPass());return m;}// 恢复备忘录中记载的数据public void restoreMemento(final Memento memento) {this.pass = memento.getPass();}public String getName() {return this.name;}public void setName(final String name) {this.name = name;}public String getPass() {return this.pass;}public void setPass(final String pass) {this.pass = pass;}}// 备忘录类public class Memento {private String pass;public String getPass() {return this.pass;}public void setPass(final String pass) {this.pass = pass;}}public class Storage {private Memento memento;public Memento getMemento() {return this.memento;}public void setMemento(final Memento memento) {this.memento = memento;}}

   

       模拟调用:

         

public static void main(final String[] args) {// 初始状态final Original original = new Original();original.setName("zhangsan");original.setPass("12345");// 创建备忘录final Storage storage = new Storage();storage.setMemento(original.createMemento());// 修改密码前System.out.println(" ~~~ before ~~~ :" + original.getPass());original.setPass("qwert");// 修改密码后System.out.println(" ~~~~ after ~~~~ : " + original.getPass());// 恢复原有密码original.restoreMemento(storage.getMemento());System.out.println(" ~~~  恢复密码后 ~~~~ : " + original.getPass());}


            


 

 

原创粉丝点击