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 语言中列出的所有命令和关键字。 它打印变量的必要值。