[设计模式学习C++实现]---command模式

命令模式适用于如下的情况:比如说在一个软件公司,有美术小组,需求小组,测试小组。

客户想改变界面风格需要去找美工小组,客户想添加一个功能需要去找需求小组,客户对功能不满意需要去找测试小组。

客户不想每次都去不同的部门找不同的人,这时需要一个项目经理就好了,客户只需要找项目经理一个人,告诉他自己的想法,具体是由谁去执行任务由项目经理去分配任务。

如上图所示:

每个部门都继承IGroup基类,每个部门在自己类中实现自己的功能。

ICommand是命令的父类,该类中有每个部门子类的指针,可以调用每个部门的各种功能。

用户只需把自己的要求告诉CInvoker,用SetCommand函数:m_command.Execute().

但是这种设计模式最大的缺陷就是需要为每个新命令添加一个新的类,这些命令都继承ICommand的Execute方法,里面有命令具体实现的过程步骤。

所以这种设计模式只适用于那些命令流程变化不大的项目。

posted @ 2013-05-27 00:07  mengmee  阅读(144)  评论(0编辑  收藏  举报