Java设计模式应用——备忘录模式
备忘录模式主要用于存档。游戏中我们打boss前总会存档,如果打boss失败,则读取存档,重新挑战boss。
可以看出来,备忘录模式一般包括如下数据结构
1、 存档文件:用于恢复备份场景的必要数据;
2、 存档管理器:用于管理存档,包括存档的读写与展示;
3、 被存档的对象。
下面以射击游戏的存档来举例:
1、 射击选手
package com.coshaho.learn.memorandum;// 射击手
public class Shooter
{
// 血量
private int blood = 100;
// 子弹数量
private int bullet = 100;
// 射击
public void shoot()
{
bullet = bullet - (int) (Math.random()*30);
if(0 > bullet)
{
bullet = 0;
}
bossHurt();
}
// boss伤害
private void bossHurt()
{
blood = blood - (int) (Math.random()*25);
if(0 > blood)
{
blood = 0;
}
}
public void show()
{
System.out.println("Shooter blood is " + blood + ", bullet is " + bullet + '.');
}
// 保存
public Memorandum save()
{
return new Memorandum(blood, bullet);
}
// 载入
public void recovery(Memorandum memory)
{
if(null == memory)
{
return;
}
blood = memory.getBlood();
bullet = memory.getBullet();
}
}
2、 存档文件
package com.coshaho.learn.memorandum;// 存档
public class Memorandum
{
private int blood;
private int bullet;
public Memorandum(int blood, int bullet)
{
this.blood = blood;
this.bullet = bullet;
}
public int getBlood()
{
return blood;
}
public int getBullet()
{
return bullet;
}
}
3、 存档管理器
package com.coshaho.learn.memorandum;// 存档管理器
public class MemorandumManager
{
private Memorandum memory;
public Memorandum getMemory()
{
return memory;
}
public void setMemory(Memorandum memory)
{
this.memory = memory;
}
}
4、 测试代码
package com.coshaho.learn.memorandum;public class MemorandumTest
{
public static void main(String[] args)
{
MemorandumManager mmemoryManager = new MemorandumManager();
Shooter shooter = new Shooter();
shooter.shoot();
shooter.show();
mmemoryManager.setMemory(shooter.save());
shooter.shoot();
shooter.show();
shooter.recovery(mmemoryManager.getMemory());
shooter.show();
}
}
以上是 Java设计模式应用——备忘录模式 的全部内容, 来源链接: utcz.com/z/391829.html