您的位置:首页 > 其它

命令设计模式

2016-07-04 13:22 357 查看
基本类图:



命令模式比较简单,具体的说就是:receiver中执行完成了某个功能,但是我们又不想把它暴露给Client,这时候我们就通过Command来封装Receiver。最后客户端Client中就只会出现Invoker和Command的子类。

Invoker中应该有2个基本的方法:

1, setCommand(Command command); 设置命令

2, Action(); 执行命令,其实就是调用command的Excute()函数。

比如下面的代码:

</pre><pre name="code" class="cpp">void Main(){
Invoker invoker = new Invoker();
ConcreteCommand command = new ConcreteCommand ();
invoker.setCommand(command );
invoker.Action();
}如此,客户端高层就和底层的receiver之前基本上没什么耦合了。
需要增加新功能的话,只需要扩展Command子类就行了。这里就会有个问题,到时候Command子类会膨胀的很厉害,

所以大家还得根据自己的实际情况来确定是否适合使用命令模式。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息