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