java设计模式之备忘录模式
2017-11-29 16:57
567 查看
java设计模式参考文章:
Java设计模式实战,23种设计模式介绍以及在Java中的实现,Java设计模式, Java经典设计模式之五大创建型模式
## 定义 ##
## 代码举例 ##
## 优点 ##
备忘录模式使用备忘录可以吧原先者的内部状态全部保存起来,使是有很“亲密”的对象可以访问备忘录中的数据。
备忘录模式强调了类设计单一责任的原则,即将状态的刻画和保存分开。
Java设计模式实战,23种设计模式介绍以及在Java中的实现,Java设计模式, Java经典设计模式之五大创建型模式
## 定义 ##
在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存该状态, 这样就可以将该对象恢复到之前保存的状态。
## 代码举例 ##
/** * @author bwx * @date 2017/11/29 * 游戏角色, 原发器 */ public class GameRoleOriginator { private int vit; // 生命值 private int atk; // 攻击力 private int def; // 防御力 public GameRoleOriginator(int vit, int atk, int def) { this.vit = vit; this.atk = atk; this.def = def; } public void fight() { vit -= 10; atk -= 8; def += 10; } public RoleStateMemento save() { return new RoleStateMemento(vit, atk, def); } public void recover(RoleStateMemento memento) { this.setVit(memento.getVit()); this.setAtk(memento.getAtk()); this.setDef(memento.getDef()); } public int getVit() { return vit; } public void setVit(int vit) { this.vit = vit; } public int getAtk() { return atk; } public void setAtk(int atk) { this.atk = atk; } public int getDef() { return def; } public void setDef(int def) { this.def = def; } @Override public String toString() { return "GameRoleOriginator{" + "vit=" + vit + ", atk=" + atk + ", def=" + def + '}'; } } /** * @author bwx * @date 2017/11/29 */ public class RoleStateMemento { private int vit; private int atk; private int def; public RoleStateMemento(int vit, int atk, int def) { this.vit = vit; this.atk = atk; this.def = def; } public int getVit() { return vit; } public void setVit(int vit) { this.vit = vit; } public int getAtk() { return atk; } public void setAtk(int atk) { this.atk = atk; } public int getDef() { return def; } public void setDef(int def) { this.def = def; } } /** * @author bwx * @date 2017/11/29 * 备忘录模式 */ public class Main { public static void main(String[] args) { GameRoleOriginator originator = new GameRoleOriginator(100, 50, 50); System.out.println("角色初始状态: " + originator); // 保存进度 RoleStateMemento memento = originator.save(); System.out.println("fight boss..."); originator.fight(); System.out.println("阻击Boss后的状态: " + originator); originator.recover(memento); System.out.println("恢复后的状态: " + originator); } }
## 优点 ##
备忘录模式使用备忘录可以吧原先者的内部状态全部保存起来,使是有很“亲密”的对象可以访问备忘录中的数据。
备忘录模式强调了类设计单一责任的原则,即将状态的刻画和保存分开。
相关文章推荐
- Java设计模式(十九)----备忘录模式
- Java设计模式百例 - 备忘录模式
- java设计模式--行为型模式--备忘录模式
- JAVA设计模式之备忘录模式
- [译]Java 设计模式之备忘录
- java设计模式----备忘录模式
- java设计模式_备忘录模式
- JAVA -备忘录设计模式
- java设计模式,备忘录模式
- java设计模式之备忘录模式
- java设计模式_备忘录模式
- JAVA设计模式之备忘录模式
- Java设计模式-----Memento备忘录模式
- Java设计模式--备忘录模式【Memento Pattern】
- java设计模式9.备忘录模式、访问者模式、调停者模式
- (二十一)Java设计模式之备忘录模式
- java设计模式-备忘录模式
- Java设计模式之备忘录模式
- java设计模式--迭代器模式 Iterator,备忘录模式 Memento,中介者模式 Mediator
- Java23种设计模式之-----备忘录模式