股票交易中,股票代理(Broker)根据客户发出的股票操作指示进行股票的买卖操作,设计如下所示类图。该设计采用( )模式将一个请求封装为一个对象,从而使得可以用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。其中,( )声明执行操作的接口。该模式属于( )模式,该模式适用于:( )。

问题1选项
A.命令(Command)
B.观察者(Observer)
C.状态(State)
D.中介者(Mediator)
问题2选项
A.Operation
B.sellOperation/BayOperation/ViewOperation
C.Broker
D.Stock
问题3选项
A.结构类型
B.结构型对象
C.创建类型
D.行为型对象
问题4选项
A.一个对象必须通知其他对象,而它又不能假定其他对象是谁
B.抽象出待执行的动作以参数化某对象
C.一个对象的行为决定于其状态且必须在运行时刻根据状态改变行为
D.一个对象引用其他对象并且直接与这些对象通信而导致难以复用该对象
第1题:
本题考查的是设计模式相关知识。
根据题干情景描述“将一个请求封装为一个对象,从而使得以用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作”,此时使用的是命令模式。第一空选择A选项。
其标准类图和基本情况如下:
命令模式的意图是:将一个请求(方法调用)封装为一个对象,从而可以用不同的请求对客户进行参数化,将请求排队或记录请求日志,支持可撤销的操作。
Command:抽象命令类,声明执行操作的一个接口。
ConcreteCommand:具体命令类,将一个接收者对象绑定于一个动作。实现Execute方法,以调用接收者的相关操作(Action)。
Invoker:调用者,要求一个命令对象执行一个请求。
Receiver:接收者,知道如何执行关联请求的相关操作。
Client:客户应用程序,创建一个具体命令类对象,并且设定它的接收者。
其中作为声明接口的应该是最高层次,根据图示应该为Operation,第二空选择A选项。
命令模式属于行为型对象模式,第三空选择D选项。
命令模式适用于:
(1)抽象出待执行的动作以参数化某对象。
(2)在不同的时刻指定、排列和执行请求。
(3)支持取消操作。
(4)支持修改日志。
(5)用构建在原语操作上的高层操作构造一个系统。
''
第2题:
根据图示可知,Operation是执行操作的接口。
第3题:
命令模式是行为型对象模式。
第4题:
第四空选择B选项。A选项描述的是观察者模式,C选项描述的是状态模式,D选项描述的是中介者模式。