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中,執行命令
留言
張貼留言