命令模式.png

    解耦了Command与Invoker。
    GoF对命令模式的定义是:『将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或者记录请求日志,以及支持可撤销的操作。命令模式的别名为动作(Action)模式或事务(Transaction)模式』

    命令模式的经典例子Java线程框架中,(作为Invoker调用者的)Thread不知道最终调用谁,于是Thread把要执行的全部代码,放入一个特殊的run()方法中,该方法由接口java.lang.Runnable定义。

    Invoker不知道应该依赖谁,因此依赖封装普适方法exe ()的命令;exe ()作为适配目标,Command模式是适配器模式的特例。