打字猴:1.700463341e+09
1700463341 xiaoSan.setCommand(command);
1700463342
1700463343 //接头人执行命令
1700463344
1700463345 xiaoSan.action();
1700463346
1700463347 }
1700463348
1700463349 }
1700463350
1700463351 运行结果如下所示:
1700463352
1700463353 ––––-客户要求删除一个页面–––––—
1700463354
1700463355 找到美工组……
1700463356
1700463357 客户要求删除一项需求……
1700463358
1700463359 客户要求需求变更计划……
1700463360
1700463361 看到上面用粗体显示的代码了吗?只修改了这么多,是不是很简单,而且客户也不用知道到底由谁来修改,高内聚的要求体现出来了,这就是命令模式。
1700463362
1700463363
1700463364
1700463365
1700463366 设计模式之禅 [:1700453981]
1700463367 设计模式之禅 15.2 命令模式的定义
1700463368
1700463369 命令模式是一个高内聚的模式,其定义为:Encapsulate a request as an object,thereby letting you parameterize clients with different requests,queue or log requests,and support undoable operations.(将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。)
1700463370
1700463371 命令模式的通用类图如图15-4所示。
1700463372
1700463373
1700463374
1700463375
1700463376 图15-4 命令模式的通用类图
1700463377
1700463378 在该类图中,我们看到三个角色:
1700463379
1700463380 ❑Receive接收者角色
1700463381
1700463382 该角色就是干活的角色,命令传递到这里是应该被执行的,具体到我们上面的例子中就是Group的三个实现类。
1700463383
1700463384 ❑Command命令角色
1700463385
1700463386 需要执行的所有命令都在这里声明。
1700463387
1700463388 ❑Invoker调用者角色
1700463389
1700463390 接收到命令,并执行命令。在例子中,我(项目经理)就是这个角色。
[ 上一页 ]  [ :1.700463341e+09 ]  [ 下一页 ]