首页 > 代码库 > 备忘录模式
备忘录模式
模式说明
所谓备忘录模式就是在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态。
模式结构图
程序示例
说明:游戏存档,恢复
代码:
class Memonto(object): _blood=0 _magic=0 def setBlood(self,blood): self._blood=blood def setMagic(self,magic): self._magic=magic def getBlood(self): return self._blood def getMagic(self): return self._magicclass Caretakor(object): _memonto = Memonto() def setMemonto(self,memonto): self._memonto=memonto def getMemonto(self): return self._memontoclass Original(object): _blood=0 _magic=0 def __init__(self,blood,magic): self._blood = blood self._magic = magic def setBlood(self,blood): self._blood=blood def setMagic(self,magic): self._magic=magic def display(self): print ‘blood:%s magic:%s‘ % (self._blood,self._magic) def saveMemonto(self): memonto = Memonto() memonto.setBlood(self._blood) memonto.setMagic(self._magic) return memonto def restoreMemonto(self,memonto): self._blood=memonto.getBlood() self._magic=memonto.getMagic()if __name__=="__main__": caretakor = Caretakor() original = Original(100,100) caretakor.setMemonto(original.saveMemonto()) original.display() original.setBlood(20) original.setMagic(30) original.display() original.restoreMemonto(caretakor.getMemonto()) original.display()
运行结果:
参考来源:
http://www.cnblogs.com/chenssy/p/3679190.html
http://www.cnblogs.com/wuyuegb2312/archive/2013/04/09/3008320.html
备忘录模式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。