java设计模式-备忘录模式
2016-05-28 19:23
603 查看
什么叫备忘录模式:
备忘录模式允许我们保存一个时间点上的数据,在出现误操作或者系统出错,我们可以恢复我们保存的那个点上的数据。
开发中常见的场景:
1.事务操作
2.redis的持久化
备忘录模式例子:
这里,我们实现的是注册学生信息,当然是我们先定义一个学生类
再来实现我们的备忘实体类
备忘录,需要是一个上下文类用来保存备忘实体类
客户端进行测试
备忘录模式允许我们保存一个时间点上的数据,在出现误操作或者系统出错,我们可以恢复我们保存的那个点上的数据。
开发中常见的场景:
1.事务操作
2.redis的持久化
备忘录模式例子:
这里,我们实现的是注册学生信息,当然是我们先定义一个学生类
package com.javademo.pattern.memento; public class Student { private String name ; private int age ; /** * 数据保存,备忘 * @return */ public StudentMemento memento(){ StudentMemento sm = new StudentMemento(); sm.setName(this.name); sm.setAge(this.age); return sm ; } /** * 数据恢复 * @param sm 备忘的消息实体,属性基本和student一致,便于拷贝 */ public void recovery(StudentMemento sm){ this.name = sm.getName(); this.age = sm.getAge(); } public Student(String name, int age) { super(); this.name = name; this.age = age; } @Override public String toString() { System.out.println("name = " + name + " age = " + age); return super.toString(); } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
再来实现我们的备忘实体类
/** * 备忘录实体类 * @author liuxg * @date 2016年5月28日 下午7:19:56 */ public class StudentMemento { private String name ; private int age ; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
备忘录,需要是一个上下文类用来保存备忘实体类
/** * 保存备忘实体类 * @author liuxg * @date 2016年5月28日 下午7:21:25 */ public class Takecare { private StudentMemento studentMemento ; //可以是多个切片时间的备忘实体,用list容器 public StudentMemento getStudentMemento() { return studentMemento; } public void setStudentMemento(StudentMemento studentMemento) { this.studentMemento = studentMemento; } }
客户端进行测试
public class Client { public static void main(String[] args) { Takecare takecare = new Takecare(); Student student = new Student("liuxg", 20); takecare.setStudentMemento(student.memento());//进行备忘 student.setAge(23); //操作 student.recovery(takecare.getStudentMemento()); //进行恢复 student.toString(); } }
相关文章推荐
- 解析C#设计模式编程中备忘录模式的运用
- Java设计模式之备忘录模式(Memento模式)介绍
- 详解备忘录模式及其在Java设计模式编程中的实现
- 学习php设计模式 php实现备忘录模式(Memento)
- C++设计模式之备忘录模式
- 我理解的--java 单例模式
- 我理解的--java工厂模式
- 我理解的--java建造者模式
- 我理解的--java组合模式
- 我理解的--java门面模式
- 我理解的--java策略模式
- 我理解的--java模板方法模式
- 我理解的--java观察者模式
- 我理解的--java备忘录模式
- 我理解的--java中介者模式
- Java设计模式(一) 简单工厂模式不简单
- Java设计模式(十一) 享元模式
- 从赵本山的小品联想到的Java设计模式
- 设计模式 - 模板方法模式