java设计模式-备忘录模式
2015-01-23 19:38
381 查看
1.目录结构
2.一个经典的例子,玩游戏的时候,路过一个存储点,可以保存游戏,当你往后面玩时不小心跪了,就可以返回上一个存储的地方开始。
3.
一个主要实体类Person,里面有很多属性,也有创建备份和恢复备份的方法。
Memento是个单纯的属性类,成员属性和getter setter跟Person完全一样,用与备份Person的属性。
CareTaker类用于管理备份,单一职责。
4.实现
Person.java
Memento.java
CareTaker.java
2.一个经典的例子,玩游戏的时候,路过一个存储点,可以保存游戏,当你往后面玩时不小心跪了,就可以返回上一个存储的地方开始。
3.
一个主要实体类Person,里面有很多属性,也有创建备份和恢复备份的方法。
Memento是个单纯的属性类,成员属性和getter setter跟Person完全一样,用与备份Person的属性。
CareTaker类用于管理备份,单一职责。
4.实现
Person.java
public class Person implements Cloneable{ private String name; private String sex; private int age; public Person() { // TODO Auto-generated constructor stub } public Person(String name,String sex,int age) { // TODO Auto-generated constructor stub this.name = name; this.sex = sex; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } /** * 保存状态 * @return */ public Memento save(){ return new Memento(name, sex, age); } /** * 恢复状态 * @param memento */ public void goBack(Memento memento){ this.name = memento.getName(); this.sex = memento.getSex(); this.age = memento.getAge(); } @Override protected Person clone() throws CloneNotSupportedException { Person person = (Person)super.clone(); return person; } @Override public String toString() { // TODO Auto-generated method stub return "Person[" + "name=" + name + ",sex=" + sex + ",age=" + age + "]"; } public void display() { // TODO Auto-generated method stub System.out.println("Person[" + "name=" + name + ",sex=" + sex + ",age=" + age + "]"); } }
Memento.java
public class Memento { private String name; private String sex; private int age; public Memento() { } public Memento(String name, String sex, int age) { this.name = name; this.sex = sex; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
CareTaker.java
public class CareTaker { private Memento memento; public Memento getMemento() { return memento; } public void setMemento(Memento memento) { this.memento = memento; } }
相关文章推荐
- 深入浅出Java设计模式之备忘录模式
- java设计模式---备忘录模式
- JAVA 设计模式 备忘录模式
- JAVA -备忘录设计模式
- Java设计模式之备忘录模式
- Java设计模式-----Memento备忘录模式
- java设计模式_备忘录模式
- Java设计模式之从[暗黑破坏神存档点]分析备忘录(Memento)模式
- Java设计模式菜鸟系列(十九)备忘录模式建模与实现
- Java设计模式之备忘录模式
- java设计模式之备忘录模式
- java设计模式(行为型)之备忘录模式
- java设计模式---备忘录模式
- java-设计模式(行为型)-【备忘录模式】
- Java设计模式-----Memento备忘录模式
- java设计模式---备忘录模式
- JAVA设计模式-备忘录模式-Memento-游戏备份存档
- Java设计模式:备忘录模式
- 【java设计模式】备忘录模式
- Java设计模式之备忘录模式