学习版本3.5.2
#学习版本3.5.2
'''备忘录模式就是在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保>存这个状态,这样可以在以后将对象恢复到原先保存的状态'''
#例如:我在游戏里先存个档,然后花50金币买了件武器,发现这个武器不好用,就读档
#花那100金币去买了另一件武器
#存档类
class Memento(object):
def __init__(self, money):
self.money = money
def getMoney(self):
return self.money
def setMoney(self, money):
self.money = money
#玩家类
class Player(object):
def __init__(self, money):
self.money = money
def useMoney(self, n):
self.money -= n
print("use money:",n)
print("money:",self.money)
def displayMoney(self):
print("money:",self.money)
#存档
def saveMemento(self):
return Memento(self.money)
#读档
def restoreMemento(self, memento):
self.money = memento.getMoney()
if __name__ == "__main__":
p = Player(110)
mymemento = p.saveMemento()
p.displayMoney()
p.useMoney(50)
print("="*20)
p.restoreMemento(mymemento)
p.displayMoney()
p.useMoney(100)
运行结果
money: 110
use money: 50
money: 60
====================
money: 110
use money: 100
money: 10