您的位置:首页 > 其它

设计模式-命令模式

2014-12-04 14:02 246 查看

应用场景:

1. 当一个应用程序调用者与多个目标对象之间存在调用关系时,并且目标对象之间的操作很类似的时候。

2. 例如当一个目标对象内部的方法调用太复杂,或者内部的方法需要协作才能完成对象的某个特点操作时。

3. 有时候调用者调用目标对象后,需要回调一些方法。

职责定义:

1. Invoker:调用者对象。

2. ICommand:用于解耦目标对象与调用者之间的抽象命令对象。

要点:

1. 对请求部分进行封装,封装使用的是: ICommand。

2. 调用者:Invoker把ICommand作为参数加入自身,调用Execute()执行具体请求。

优劣势描述:

1. 能较容易地建立一个命令队列

2. 在需要的情况下,可以较容易地将命令记入日志

3. 允许接收请求的一方是否拒绝请求

4. 可以容易地实现对请求的撤销和重做

总结:

将请求进行封装,可以在封装的内部做一些其他扩展,例如增加日志、对调用顺序记录。类似于AOP,命令模式在程序中经常被使用,比如委托就是使用命令模式的一种体现。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: