Python 设计模式 - 命令模式(Command Pattern)

命令模式(Command Pattern)在动作之间添加了一个抽象级别,并包含一个调用这些动作的对象。

在此设计模式中,客户端创建一个命令对象,其中包含要执行的命令列表。 创建的命令对象实现特定接口。

在软件系统中,"行为请求者"与"行为实现者"通常呈现一种"紧耦合"。但在某些场合,比如要对行为进行"记录、撤销/重做、事务"等处理,这种无法抵御变化的紧耦合是不合适的。在这种情况下,如何将"行为请求者"与"行为实现者"解耦?将一组行为抽象为对象,实现二者之间的松耦合。这就是命令模式(Command Pattern)。

以下是命令模式的基本架构 −

命令模式的架构

Python 如何实现命令模式?

我们现在将看到如何实现设计模式。

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)

输出

以上程序生成如下输出 −

Python 命令模式

说明

输出实现了 Python 语言中列出的所有命令和关键字。 它打印变量的必要值。