设计模式-18-备忘录模式
来源:互联网 发布:检察院 大数据 公司 编辑:程序博客网 时间:2024/06/06 10:57
备忘录模式: 备忘录模式是一种给我们的软件提供后悔药的机制,通过它可以使系统恢复到某一特定的历史状态
游戏角色类
package com.actionPattern.memorandum.edition1;/* * 游戏角色类 */public class Role { /**血量*/ private int bloodFlow; /**蓝量*/ private int magicPoint; public Role(int bloodFlow,int magicPoint){ this.bloodFlow = bloodFlow; this.magicPoint = magicPoint; } public int getBloodFlow() { return bloodFlow; } public void setBloodFlow(int bloodFlow) { this.bloodFlow = bloodFlow; } public int getMagicPoint() { return magicPoint; } public void setMagicPoint(int magicPoint) { this.magicPoint = magicPoint; } /** * 展示角色当前状态 * @return void */ public void display(){ System.out.println("用户当前状态:"); System.out.println("血量:" + getBloodFlow() + ";蓝量:" + getMagicPoint()); } /** * 保持存档、当前状态 * @return * @return Memento */ public Memento saveMemento(){ return new Memento(getBloodFlow(), getMagicPoint()); } /** * 恢复存档 * @param memento * @return void */ public void restoreMemento(Memento memento){ this.bloodFlow = memento.getBloodFlow(); this.magicPoint = memento.getMagicPoint(); }}
备忘录:Memento
package com.actionPattern.memorandum.edition1;/* * 备忘录:Memento */class Memento { private int bloodFlow; private int magicPoint; public int getBloodFlow() { return bloodFlow; } public void setBloodFlow(int bloodFlow) { this.bloodFlow = bloodFlow; } public int getMagicPoint() { return magicPoint; } public void setMagicPoint(int magicPoint) { this.magicPoint = magicPoint; } public Memento(int bloodFlow,int magicPoint){ this.bloodFlow = bloodFlow; this.magicPoint = magicPoint; }}
测试
package com.actionPattern.memorandum.edition1;/* * 测试 */public class Client { public static void main(String[] args) { //打BOSS之前:血、蓝全部满值 Role role = new Role(100, 100); System.out.println("----------大战BOSS之前----------"); role.display(); Memento memento1 = role.saveMemento();//历史纪录1 //大战BOSS,快come Over了 role.setBloodFlow(40); role.setMagicPoint(40); System.out.println("----------大战BOSS1----------"); role.display(); Memento memento2 = role.saveMemento();//历史纪录2 role.setBloodFlow(20); role.setMagicPoint(20); System.out.println("----------------大战boss2----------"); role.display(); Memento memento3 = role.saveMemento();//历史纪录三 //恢复存档 role.restoreMemento(memento2); System.out.println("----------恢复----------"); role.display(); }}
阅读全文
0 0
- 设计模式(18) ------------备忘录模式
- 设计模式:18 备忘录模式
- 设计模式(18)-备忘录模式
- 设计模式-18-备忘录模式
- 设计模式-----备忘录模式
- 设计模式 备忘录模式
- 【设计模式】备忘录模式
- 设计模式 - 备忘录模式
- 设计模式:备忘录模式
- 设计模式 - 备忘录模式
- 设计模式 - 备忘录模式
- 设计模式 - 备忘录模式
- 设计模式:备忘录模式
- 【设计模式】备忘录模式
- 设计模式-备忘录模式
- 设计模式--备忘录模式
- 设计模式--备忘录模式
- 设计模式--备忘录模式
- iOS 自定义Cell拖拽的另一种形式
- N皇后问题<经典DFS>
- ORACLE 常用函数——日期/时间函数
- Spring+Hibernate双数据源测试Mysql集群读写分离
- SQL连接的几种方式
- 设计模式-18-备忘录模式
- 虚拟机里部署java web工程
- HDU 2008
- Android 不要错过的 7 个完整项目学习
- 【项目实战】——Tree树显示过程核心
- 容斥原理模板
- 上传图片时,Input file图片预览的实现
- Hadoop HA 高可用集群搭建
- 移动端meta整合