餐厅的点菜过程如下面的UML顺序图所示,现采用命令(Command)模式来实现该场景。那么下面顺序图中,与命令模式中的类Command对应的类是(1);与类Receiver对应的类是(2)。
空白(2)处应选择()
A.Cook
B.Customer
C.Order
D.Waitress
参考答案:A
解析:分析命令(Command)模式是一种对象的行为型模式,类似于传统程序设计方法中的回调机制,它将一个请求封装为一个对象,从而使得可用不同的请求对客户进行参数化:对请求排队或者记录请求日志,以及支持可撤销的操作。命令模式是对命令的封装,将发出命令的责任和执行命令的责任分割开,委派给不同的对象,以实现发送者和接收者完全解耦,提供更大的灵活性和可扩展性。Command模式的结构如下图所示。其中:·类Command声明执行操作的接口;·ConcreteCommand将一个接收者对象绑定于一个动作,并调用接收者相应的操作,以实现execute方法;·类Client创建一个ConcreteCommand对象并设定它的接收者;·类Invoker要求Command执行这个请求;·类Receiver知道如何实施与执行一个请求相关的操作。任何类都可能作为一个接收者。在“点菜”这个实例中,订单是厨师(Cook)与action(按订单加工)之间的绑定,厨师接受订单并对之负责。所以在该实例中,与Command类对应的类是Order,与Receiver对应的类是Cook。