单选题 餐厅的点菜过程如图1所示,现采用命令(Command)模式来实现该场景。那么下面顺序图中,与命令模式中的类“Command”对应的类是______;与类Receiver对应的类是______。
单选题
  • A.Cook
  • B.Customer
  • C.Order
  • D.Waitress
【正确答案】 C
【答案解析】
单选题
  • A.Cook
  • B.Customer
  • C.Order
  • D.Waitress
【正确答案】 A
【答案解析】[解析] 命令(Command)模式是一种对象的行为型模式,类似于传统程序设计方法中的回调机制,它将一个请求封装为一个对象,从而使得可用不同的请求对客户进行参数化;对请求排队或者记录请求日志,以及支持可撤销的操作。命令模式是对命令的封装,将发出命令的责任和执行命令的责任分割开,委派给不同的对象,以实现发送者和接收者完全解耦,提供更大的灵活性和可扩展性。
Command模式的结构如图2所示。
[*]

图2 Command模式结构图

其中,
● 类Command声明执行操作的接口。
● ConcreteCommand将一个接收者对象绑定于一个动作,并调用接收者相应的操作,以实现execute方法。
● 类Client创建一个ConcreteCommand对象并设定它的接收者。
● 类Invoker要求Command执行这个请求。
● 类Receiver知道如何实施与执行一个请求相关的操作。任何类都可能作为接收者。
在“点菜”这个实例中,订单是厨师(Cook)与action(按订单加工)之间的绑定,厨师接受订单并对之负责。所以在该实例中,与Command类对应的类是“Order”,与Receiver对应的类是“Cook”。
单选题 某网站系统在用户登录时使用数字校验码。为了增强安全性,现在要求在登录校验码中增加字母或图片。如果直接修改原有的生成登录校验码的程序代码,则违反了面向对象设计原则中的______。
  • A.开闭原则
  • B.里氏替换原则
  • C.最少知识原则
  • D.组合复用原则
【正确答案】 A
【答案解析】[解析] 面向对象的设计原则包括开闭原则、里氏替换原则、依赖倒置原则、组合/聚合复用原则、接口隔离原则和最少知识原则等。 开闭原则是指软件实体应对扩展开放,而对修改关闭,即尽量在不修改原有代码的情况下进行扩展。此处的“实体”可以指一个软件模块、一个由多个类组成的局部结构或一个独立的类。 应用开闭原则可扩展已有的系统,并为之提供新的行为,以满足对软件的新需求,使变化中的系统具有一定的适应性和灵活性。对于已有的软件模块,特别是最重要的抽象层模块不能再修改,这就使变化中的系统有一定的稳定性和延续性,这样的系统同时满足了可复用性与可维护性。在面向对象设计中,开闭原则一般通过在原有模块中添加抽象层(例如,接口或抽象类)来实现,它是其他OOD原则的基础,而其他原则是实现开闭原则的具体措施。
单选题 UML用系统视图描述系统的组织结构。其中,______对系统的物理代码的文件和构件进行建模。
  • A.构件视图
  • B.物理视图
  • C.实现视图
  • D.部署视图
【正确答案】 C
【答案解析】