Python
設計模式
備忘錄模式
class Memento:
def __init__(self, state):
self.state = state
def GetState(self):
return self.state
class Origniator:
def __init__(self):
self.state = ''
def GetState(self):
return self.state
def SetState(self, state):
self.state = state
def SaveStateToMemeto(self):
return Memento(self.state)
def getStateFromMemeto(self, Memento):
self.state = Memento.GetState()
class CareTaker:
def __init__(self):
self. MementoList = []
def Add(self, memento):
self.MementoList.append(memento)
def GetMementoIndex(self, index):
return self.MementoList[index]
O = Origniator()
C = CareTaker()
O.SetState('1 state 1')
O.SetState('2 state 2')
C.Add(O.SaveStateToMemeto())
O.SetState('3 state 3')
C.Add(O.SaveStateToMemeto())
O.SetState('4 state 4')
print('Current State : ' + O.GetState())
O.getStateFromMemeto(C.GetMementoIndex(0))
print('First State : ' + O.GetState())
O.getStateFromMemeto(C.GetMementoIndex(1))
print('Second State : ' + O.GetState())
程式碼說明
定義memeto,定義操作類別,定義儲存類別,操作。
留言
張貼留言