命令模式在動作之間添加一個抽象級別,并包含一個調(diào)用這些動作的對象。
在這種設(shè)計(jì)模式中,客戶端創(chuàng)建一個包含要執(zhí)行的命令列表的命令對象。 創(chuàng)建的命令對象實(shí)現(xiàn)了特定的接口。
以下是命令模式的基本架構(gòu) -

現(xiàn)在我們將看到如何實(shí)現(xiàn)設(shè)計(jì)模式。參考以下實(shí)現(xiàn)代碼 -
def demo(a,b,c):
print 'a:',a
print 'b:',b
print 'c:',c
class Command:
def __init__(self, cmd, *args):
self._cmd=cmd
self._args=args
def __call__(self, *args):
return apply(self._cmd, self._args+args)
cmd = Command(dir,__builtins__)
print cmd()
cmd = Command(demo,1,2)
cmd(3)
執(zhí)行上述程序生成以下輸出 -

注意:輸出實(shí)現(xiàn)了Python語言中列出的所有命令和關(guān)鍵字。它打印變量的值。