备忘录模式课本实例

 

package Beiwanglu;

public class GameRole {
private int vit;
private int atk;
private int def;
public GameRole() {
	super();
}
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;
}
public void display()
{System.out.println("角色当前状态");
System.out.println("体力"+vit);
System.out.println("攻击力"+atk);
System.out.println("防御力"+def);
}
public void GetInitState()
{this.vit=100;
this.atk=100;
this.def=100;
}
public void Fight()
{this.vit=0;
this.atk=0;
this.def=0;
}
public Memento SaveState()
{return new Memento(vit,atk,def);
}
public void Recorvery(Memento memento)
{this.vit=memento.getVit();
this.atk=memento.getAtk();
this.def=memento.getDef();
}
}
package Beiwanglu;

public class Memento {
private int vit;
private int atk;
private int def;
public Memento(int vit,int atk,int def)
{this.vit=vit;
this.atk=atk;
this.def=def;
}
public Memento() {
	super();
}
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;
}

}
package Beiwanglu;

public class CareTaker {
private Memento memento;

public Memento getMemento() {
	return memento;
}

public void setMemento(Memento memento) {
	this.memento = memento;
}

}
package Beiwanglu;

public class Test {
public static void main(String args[])
{GameRole lixiaoyao=new GameRole();
lixiaoyao.GetInitState();
lixiaoyao.display();
CareTaker Admin=new CareTaker();
Admin.setMemento(lixiaoyao.SaveState());
lixiaoyao.Fight();
lixiaoyao.display();
lixiaoyao.Recorvery(Admin.getMemento());
lixiaoyao.display();
}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值