Python
設計模式
命令模式
class Cook:
def cook(self, food):
print('cook ' + food)
class Invoke:
def __init__(self):
self.CommandList = []
def AddOrder(self, command):
self.CommandList.append(command)
def CancelOrder(self, command):
self.CommandList.remove(Command)
def SendOrder(self):
for i in self.CommandList:
i.excute()
self.CommandList.clear()
class Command:
def excute(self):
pass
class CreateCommand1:
def __init__(self):
self.cook = None
self.food = 'pig'
def SetCook(self,cook):
self.cook = cook
def excute(self):
self.cook.cook(self.food)
class CreateCommand2:
def __init__(self):
self.cook = None
self.food = 'beef'
def SetCook(self,cook):
self.cook = cook
def excute(self):
self.cook.cook(self.food)
C1 = Cook()
I = Invoke()
command1 = CreateCommand1()
command2 = CreateCommand2()
command1.SetCook(C1)
command2.SetCook(C1)
I.AddOrder(command1)
I.AddOrder(command2)
I.SendOrder()
程式碼說明
定義廚師,定義Invoke,定義命令介面,定義命令,建立廚師、Invoke、命令、設定廚師、把命令設定到invoke中,執行命令
留言
張貼留言