一、选择题(每题 2 分,共 20 分) 1.若类 A 中包含了类 B 的实例,且当类 A 的实例消逝时,类 B 的实例仍然存在并能够继续工作,那么类 A 和类 B 之间存在( C )关系。A. 继承 B. 依赖 C. 聚合 D. 组合2.在面对对象软件开发过程中,采纳设计模式( C )。A. 可以减少在设计和实现过程中需要创建的实例对象的数量B. 可以保证程序的运行速度达到最优值C. 可以复用相似问题的相同解决方案D. 允许在非面对对象程序设计语言中使用面对对象的概念3.对 Alexander 的模式哲学,以下叙述正确的是( B )。A 学习设计模式,可以完全解决软件开发中的变化情况.B. 每个模式,可以无数次使用模式提供的解决方案,而不必再次重复同样的工作方式.C. 设计模式总是可以为需求的变化提供更好的解决方案.D. 设计模式描述一个在开发的软件环境中不断产生新的问题时,能提供很好的解决方案.4.当我们想创建一个具体的对象而又不希望指定具体的类时,可以使用( A )模式。 A.创建型 B.结构型 C.行为型 D.以上都可以5.( B )不是实现单例模式的要点。A. 构造函数为私有 B. 单例类不能被继承C. 由单例类自行创建单个实例 D. 必须自行向整个系统提供唯一实例6.设计模式的两大主题是( D )A.系统的维护与开发 B.对象组合与类的继承C.系统架构与系统开发 D.系统复用与系统扩展6.关于继承表述错误的是( D )A.继承是一种通过扩展一个已有对象的实现,从而获得新功能的复用方法。B.泛化类(超类)可以显式地捕获那些公共的属性和方法。特别类(子类)则通过附加属性和方法来进行实现的扩展。C.破坏了封装性,因为这会将父类的实现细节暴露给子类。D.继承本质上是“白盒复用”,对父类的修改,不会影响到子类。7.代理模式包括( D )角色。A.接收者、命令接口、具体命令、请求者 B.环境、抽象状态、具体状态C.抽象组件、具体组件、装饰、具体装饰 D.抽象主题、实际主题、代理8.以下关于命令模式的叙述错误的是( D )。A. 命令模式将一个请求封装为一个对象,从而使我们可用不同的请求对客户进行参数化B. 命令模式实现请求发送者和请求接收者解耦C. 使用命令模式会导致某些系统有过多的具体命令类D. 命令模式是对命令的封装,命令模式把发出命令的责任和执行命令的责任集中在同一个类中9.某 系 统 中 的 文 本 显 示 类 ( TextView ) 和 图 片 显 示 类 ( PictureView ) 都 继 ...