设计模式开始--备忘录模式
时间:2015-04-01 16:53:44
收藏:0
阅读:139
备忘录模式
一、作用:
在不破坏原有封装性(属性什么的,不要暴漏给客户端)的前提下,捕获一个对象的内容状态,并保持这个对象的状态,同样可以将对象恢复到之前的状态
二、类图:
三、实现
(1)Role类,角色类,可以保存状态,恢复状态

public class Role { private String status; public String getStatus() { return status; } public void setStatus(String status) { this.status = status; } public Memory saveMemory() { return new Memory(status); } public void recoveryMemory(Memory memory) { this.status = memory.getStatus(); } }
(2)Memory类,实际状态保持的类,用于封装,隐藏细节

public class Memory { private String status; public String getStatus() { return status; } public void setStatus(String status) { this.status = status; } public Memory(String status) { this.status = status; } }
(3)MemoryCare类,用于set和get保存的状态

public class MemoryCare { private Memory memory; public Memory getMemory() { return memory; } public void setMemory(Memory memory) { this.memory = memory; } }
(4)Client,客户类

public class Client { public static void main(String[] args) { MemoryCare mc = new MemoryCare(); Role role = new Role(); role.setStatus("fighting"); System.out.println(role.getStatus()); mc.setMemory(role.saveMemory()); role.setStatus("game over"); System.out.println(role.getStatus()); role.recoveryMemory(mc.getMemory()); System.out.println(role.getStatus()); } }
Bonus:适配器模式:再增加一个类,使用适配器模式,将不适用与现在接口的方法改写成可以适用的方法
原文:http://www.cnblogs.com/sunshisonghit/p/4383947.html
评论(0)