天天看点

【设计模式】命令模式

命令模式:将请求封装在对象中,客户不直接调用某个对象的方法,而是使用命令,将命令传递给拥有方法的对象从而让某一方法被调用。UML图例如以下:

【设计模式】命令模式

以下是用C++描写的命令模式的一个简单样例:

执行结果:

【设计模式】命令模式

命令被封装成类,然后由某个Invoker(这里是switch开关类)保存、删除、发出命令。命令行的长处在于:把请求一个操作的对象(Invoker)与知道怎么运行一个操作的对象(Receiver)分隔开了。我们能够在实际操作開始之前或之后进行某些灵活的操作,比方:加入、删除、反复、记录日志等。

參考:

维基百科

《大话设计模式》第23章