备忘录模式

角色:originator(发起者)memento(回忆,备忘录)caretaker(守护者,管理者)

模式的作用,可以记录发起者改变之前的状态,必要的时候可以将发起者的状态还原。

public class beiwanglu {
	public static void main(String[] args) {
		Originator originator = new Originator();
		originator.setState("状态1");
		Caretaker caretaker = new Caretaker();
		System.out.println("1:" + originator.getState());
		Memento memento = originator.createMento();
		caretaker.setMemento(memento);
		originator.setState("状态2");
		System.out.println("2:" + originator.getState());
		originator.restoreState(memento);
		System.out.println("3:" + originator.getState());
	}
}
class Originator {
	private String state = "";
	
	public String getState() {
		return state;
	}

	public void setState(String state) {
		this.state = state;
	}
	
	public Memento createMento(){
		return new Memento(this.state);
	}
	
	public void restoreState(Memento memento){
		this.setState(memento.getState());
	}
}

class Memento{
	private String state = "";
	public Memento(String state){
		this.state = state;
	}
	public String getState() {
		return state;
	}

	public void setState(String state) {
		this.state = state;
	}
	
}

class Caretaker{
	private  Memento memento;

	public Memento getMemento() {
		return memento;
	}

	public void setMemento(Memento memento) {
		this.memento = memento;
	}
}
其中发起者有个状态属性,回忆也有个状态属性,主要用来保存发起者的状态,守护者有个回忆属性,可以创建回忆。发起者可以创建一个回忆,   和根据回忆更改自己的状态。测试方法中,可以看到,先创建一个发起者对象,设置属性,发起者产生一个回忆,创建一个守护者,这个守护者再保存这个回忆。发起者的状态再进行变化。。。

发起者可以根据守护者保存的回忆进行状态的还原。

感谢java知音

https://mp.weixin.qq.com/s?__biz=MzI4Njc5NjM1NQ==&mid=2247484590&idx=2&sn=0f3cbda10e038ac7a7056742f0d261af&chksm=ebd63b82dca1b294555a3c40bc6c7da1466b5bdf9e970b863ea1809016ebd8460ac5acbe43fc&mpshare=1&scene=23&srcid=1220DcV5cuX5dB5pkSQc0N1c#rd

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值