设计模式 命令-Command
命令-Command
当要向不同类的对象发出相同的请求时,可以将接收者和他的动作封装进一个命令对象。这样调用者只和命令产生依赖。而不会和众多的接收者发生依赖。
Head First例子
要设计一款遥控器,控制家里不同的灯或电器。有7个控制栏,上面有开和关按钮。这里遥控器不直接调用灯或电器。因为那是具体的实现,不稳定。引入Command对象。每个按钮按下,就执行相关命令的execute方法。针对不同的电器实现一些列的OnCommand和OffCommand类。里面封装了具体的灯或电器。在构造时传入。在execute方法中执行具体的action方法。
更进一步的应用,可以支持undo操作和宏命令。