•新的命令可以很容易地加入到系统中。只要实现了抽象命令接口的具体命令类就可以与接收者相关联。
•可以比较容易地设计一个组合命令,形成一个轻量级的事件队列
•命令模式使请求本身成为一个对象,这个对象和其他对象一样可以被存储和传递。
•请求方不必知道接收请求的接口,执行命令的细节(只需客户端为concreteCommand对象指定一个receiver对象即可)起到了很好的封装隔离作用.
缺点:
•每一个命令都需要设计一个具体命令类,使用命令模式会导致某些系统有过多的具体命令类。
应用情景:
•系统需要将请求调用者和请求接收者解耦,使得调用者和接收者不直接交互。
•系统需要在不同的时间指定请求、将请求排队和执行请求。
•系统需要支持命令的撤销(Undo)操作和恢复(Redo)操作。
•系统需要将一组操作组合在一起,即支持宏命令。
原文链接:http://www.cnblogs.com/ejiyuan/archive/2012/06/28/2567905.html