设计模式--备忘录模式
来源:互联网 发布:逆战天梯卡数据不扣分 编辑:程序博客网 时间:2024/06/05 04:36
1 将对象信息保存起来,可以以后将该对象恢复在保存之前的状态。
被保存的类:
public class GameRole { // 攻击力 public Integer aggressivity; // 防御力 public Integer defensive; public GameRole(Integer aggressivity, Integer defensive) { this.aggressivity = aggressivity; this.defensive = defensive; } // 改变状态 public void fight() { this.aggressivity = 0; this.defensive = 0; } public RoleStateMemento saveState() { return new RoleStateMemento(this.aggressivity, this.defensive); } public void recoveryState(RoleStateMemento roleStateMemento) { this.aggressivity = roleStateMemento.getGameRole().aggressivity; this.defensive = roleStateMemento.getGameRole().defensive; } public void displayer() { System.out.println(aggressivity + " " + defensive); }}
信息存储箱
public class RoleStateMemento { private GameRole gameRole; public RoleStateMemento(Integer aggressivity, Integer defensive) { gameRole = new GameRole(aggressivity, defensive); } public GameRole getGameRole() { return gameRole; } public void setGameRole(GameRole gameRole) { this.gameRole = gameRole; }}
信息管理者
public class RoleStateCareTaker { private RoleStateMemento roleStateMemento; public RoleStateMemento getRoleStateMemento() { return roleStateMemento; } public void setRoleStateMemento(RoleStateMemento roleStateMemento) { this.roleStateMemento = roleStateMemento; }}
测试:
public class TextMain { public static void main(String[] args) { GameRole gameRole = new GameRole(10, 10); RoleStateCareTaker roleStateCareTaker = new RoleStateCareTaker(); RoleStateMemento roleStateMemento = gameRole.saveState(); roleStateCareTaker.setRoleStateMemento(roleStateMemento); gameRole.displayer(); gameRole.fight();// 状态改变 gameRole.displayer(); gameRole.recoveryState(roleStateCareTaker.getRoleStateMemento()); gameRole.displayer(); }}
阅读全文
0 0
- 设计模式-----备忘录模式
- 设计模式 备忘录模式
- 【设计模式】备忘录模式
- 设计模式 - 备忘录模式
- 设计模式:备忘录模式
- 设计模式 - 备忘录模式
- 设计模式 - 备忘录模式
- 设计模式 - 备忘录模式
- 设计模式:备忘录模式
- 【设计模式】备忘录模式
- 设计模式-备忘录模式
- 设计模式--备忘录模式
- 设计模式--备忘录模式
- 设计模式--备忘录模式
- 设计模式-备忘录模式
- 设计模式-备忘录模式
- 【设计模式】备忘录模式
- 设计模式-备忘录模式
- SSM整合手机联系人
- LRUCache,DiskLrucache,四种引用的区别,以及图片二次采样,三级缓存小知识
- 剑指offer面试题61 按之字形顺序打印二叉树(java实现)
- AlarmManager与NotificationManager
- 数据库连接池的代码实例(DHCP、C3P0)
- 设计模式--备忘录模式
- G
- java学习_小程序(四线程断点网络资源下载,即时进度反馈)
- java求解一给定数字的二进制表达中的1的个数
- ctrl+v粘贴快捷键突然不能使用的原因及解决方案
- Linux学习总结(37)——CentOS7下Firewall防火墙配置用法详解
- Square HDU
- What Is Your Grade? HDU
- PHP 正则表达式抓取网页内容。