体系结构期末复习
一、 选择题
(一)
1. 设计模式的基本原理是( C )
A. 面向实现编程 B. 面向对象编程 C. 面向接口编程 D. 面向组合编程 2. 设计模式的两大主题是( D )
A. 系统的维护与开发 B. 对象组合与类的继承 C. 系统架构与系统开发 D. 系统复用与系统扩展
3. 依据设计模式思想,程序开发中应优先使用的是( A )关系实现复用。 A. 组合聚合 B. 继承 C. 创建 D. .以上都不对 4. 关于继承表述错误的是( D )
A. 继承是一种通过扩展一个已有对象的实现,从而获得新功能的复用方法。
B. 泛化类(超类)可以显式地捕获那些公共的属性和方法。特殊类(子类)则通过附加属性和方法来进行实现的扩展。
C. 破坏了封装性,因为这会将父类的实现细节暴露给子类。 D. 继承本质上是“白盒复用”,对父类的修改,不会影响到子类。 5. 常用的设计模式可分为( A )
A. 创建型、结构型和行为型 B. 对象型、结构型和行为型 C. 过程型、创建型和结构型 D. 抽象型、接口型和实现型 6. “不要和陌生人说话” 是对( D )设计原则的通俗表述。
A. 接口隔离 B. 里氏代换 C. 依赖倒转 D. .迪米特法则 7. 在适配器模式中,对象适配器模式是对( A )设计原则的典型应用
A. 合成聚合 B. 里氏代换 C. 依赖倒转 D. .迪米特法则 8. 将一个类的接口转换成客户希望的另一个接口,这句话是对(C)设计模式的描述 A. 策略模式 B. 桥接模式 C. 适配器模式 D. 单例模式 9. 以下设计模式中属于结构模式的是( D )
A. 观察者模式 B. 单例模式 C. 策略模式 D. 外观模式 10. 以下不属于对象行为型模式是( D )
A. 命令模式 B. 策略模式 C. 访问者模式 D. 桥接模式 11. 下面的类图表示的是哪个设计模式( D )
A. 抽象工厂模式 B. 观察者模式 C. 策略模式 D. 桥接模式
12. Open-Close开闭原则的含义是一个软件实体( A ) A. 应当对扩展开放,对修改关闭。 B. 应当对修改开放,对扩展关闭。 C. 应当对继承开放,对修改关闭。 D. 以上都不对。 13. 下面的类图表示的是哪个设计模式( D )
A. 策略模式 B. 装饰模式 C. 桥接模式 D. 观察者模式
14. 保证一个类仅有一个实例,并提供一个访问它的全局访问点。这句话是对( D )设计模式的描述。
A. 外观模式 B. 策略模式 C. 适配器模式 D. 单例模式 15. 以下意图哪个是用来描述组合模式( C ) A. 为其他对象提供一种代理以控制对这个对象的访问。 B. 运用共享技术有效地支持大量细粒度的对象。
C. 将对象组合成树形结构以表示“部分-整体”的层次结构。 D. 将一个复杂对象的构建与它的表示分离。 16. 以下意图哪个是用来描述命令模式( A )
A. 将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化。 B. 定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。 C. 为其他对象提供一种代理以控制对这个对象的访问。
D. 保证一个类仅有一个实例,并提供一个访问它的全局访问点。
17. 以下哪种情况不适合使用适配器模式( D )
A. 你想使用一个已经存在的类,而它的接口不符合你的需求。 B. 你想创建一个类,该类可以复用另外一个类的功能。 C. 你想创建一个类,该类可以复用另外多个类的功能。
D. 你想在类中用相对较少的对象引用取代很多对象的引用。 18. 以下意图哪个是用来描述观察者模式( B )
A. 将抽象部分与它的实现部分分离,使它们都可以独立地变化。
B. 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新。
C. 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。
D. 使多个对象都有机会处理请求,避免请求的发送者和接收者之间的耦合关系。 19. 以下意图哪个是用来描述状态模式( C )
A. 使多个对象都有机会处理请求,避免请求的发送者和接收者之间的耦合关系。 B. 顺序访问一个聚合对象中各个元素, 而又不需暴露该对象的内部表示。
C. 允许一个对象在其内部状态改变时改变它的行为。看起来似乎修改了它的类。 D. 捕获一个对象的内部状态,并在该对象之外保存这个状态。 20. 以下意图哪个是用来描述策略模式( D )
A. 将抽象部分与它的实现部分分离,使它们都可以独立地变化。 B. 将一个复杂对象的构建与它的表示分离。
C. 将抽象部分与它的实现部分分离,使它们都可以独立地变化。
D. 定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。 1 C 11 D 2 D 12 A 3 A 13 D 4 D 14 D 5 A 15 C 6 D 16 A 7 A 17 D 8 C 18 B 9 D 19 C 10 D 20 D (二)
1. 要依赖于抽象,不要依赖于具体。即针对接口编程,不要针对实现编程,是( D ) A. 开闭原则 B. 接口隔离原则 C. 里氏代换原则 D. 依赖倒转原则 2. 以下对\开-闭\原则的一些描述错误的是( A )
A. \开-闭\原则与\对可变性的封装原则\没有相似性。
B. 找到一个系统的可变元素,将它封装起来,叫\开-闭\原则。 C. 对修改关闭: 是其原则之一。
D. 从抽象层导出一个或多个新的具体类可以改变系统的行为,是其原则之一。 3. 依据设计模式思想,程序开发中应优先使用的是( B )关系实现复用。 A. 继承 B. 组合聚合 C. 创建 D. .以上都不对 4. 设计模式的两大主题是( C )
A. 系统的维护与开发 B. 对象组合与类的继承 C. 系统复用与系统扩展 D. 系统架构与系统开发 5. 常用的设计模式可分为( C )
A. 过程型、创建型和结构型 B. 对象型、结构型和行为型 C. 创建型、结构型和行为型 D. 抽象型、接口型和实现型 6. “知道的越少越好” 是对( D )设计原则的通俗表述。
A. 接口隔离 B. 里氏代换 C. 依赖倒转 D. .迪米特法则
7. 在适配器模式中,对象适配器模式是对( A )设计原则的典型应用
A. 合成聚合 B. 里氏代换 C. 依赖倒转 D. .迪米特法则 8. 观察者模式定义了一种( A )的依赖关系
A. 一对多 B. 多对多 C. 一对一 D. 以上都不对 9. 以下设计模式中不属于创建型模式的是( B )
A. 工厂模式 B. 外观模式 C. 生成器模式 D. 单例模式 10. 以下不属于结构型模式是( C )
A. 组合模式 B. 适配器模式 C. 访问者模式 D. 桥接模式 11. 以下不属于行为型模式是( B )
A. 迭代器模式 B. 外观模式 C. 状态模式 D. 策略模式 12. 将一个类的接口转换成客户希望的另一个接口,这句话是对(C)设计模式的描述 A. 策略模式 B. 桥接模式 C. 适配器模式 D. 单例模式 13. 下面的类图表示的是哪个设计模式( C )
A. 策略模式 B. 装饰模式 C. 适配器模式 D. 观察者模式 14. 下面的类图表示的是哪个设计模式( B )
A. 桥接模式 B. 组合模式 C. 命令模式 D. 观察者模式 15. 保证一个类仅有一个实例,并提供一个访问它的全局访问点。这句话是对( D )设计模式的描述。
A. 外观模式 B. 策略模式 C. 适配器模式 D. 单例模式 16. 以下哪项不是桥接模式的优点( C ) A. 分离接口及其实现部分。 B. 提高可扩充性。 C. 改变值以指定新对象。 D. 实现细节对客户透明。 17. 在观察者模式中,表述错误的是( C ) A. 观察者角色的更新是被动的。
B. 被观察者可以通知观察者进行更新。
C. 观察者可以改变被观察者的状态,再由被观察者通知所有观察者依据被观察者的状态进行。
D. 以上表述全部错误。
18. 当我们想创建一个具体的对象而又不希望指定具体的类时,可以使用( A )模式 A. 创建型 B. 结构型 C. 行为型 D. .以上都不对 19. 以下意图哪个是用来描述状态模式( C )
A. 使多个对象都有机会处理请求,避免请求的发送者和接收者之间的耦合关系。 B. 顺序访问一个聚合对象中各个元素, 而又不需暴露该对象的内部表示。
C. 允许一个对象在其内部状态改变时改变它的行为。看起来似乎修改了它的类。 D. 捕获一个对象的内部状态,并在该对象之外保存这个状态。 20. 以下意图哪个是用来描述组合模式( C )
A. 为其他对象提供一种代理以控制对这个对象的访问。 B. 运用共享技术有效地支持大量细粒度的对象。
C. 将对象组合成树形结构以表示“部分-整体”的层次结构。 D. 将一个复杂对象的构建与它的表示分离。 1 D 11 B 2 A 12 C 3 B 13 C 4 C 14 B 5 C 15 D 6 D 16 C 7 A 17 C 8 A 18 A 9 B 19 C 10 C 20 C (三)
1. 常用的设计模式可分为( A )
A. 创建型、结构型和行为型 B. 对象型、结构型和行为型 C. 过程型、创建型和结构型 D. 抽象型、接口型和实现型 2. “不要和陌生人说话” 是对( D )设计原则的通俗表述。
A. 接口隔离 B. 里氏代换 C. 依赖倒转 D. .迪米特法则 3. 在适配器模式中,对象适配器模式是对( A )设计原则的典型应用
A. 合成聚合 B. 里氏代换 C. 依赖倒转 D. .迪米特法则 4. 将一个类的接口转换成客户希望的另一个接口,这句话是对(C)设计模式的描述 A. 策略模式 B. 桥接模式 C. 适配器模式 D. 单例模式 5. 以下设计模式中属于结构模式的是( D )
A. 观察者模式 B. 单例模式 C. 迭代器模式 D. 适配器模式 6. 以下意图哪个是用来描述命令模式( A )
A. 将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化。 B. 定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。 C. 为其他对象提供一种代理以控制对这个对象的访问。
D. 保证一个类仅有一个实例,并提供一个访问它的全局访问点。 7. 下面的类图表示的是哪个设计模式( D )
A. 抽象工厂模式 B. 桥接模式 C. 状态模式 D. 适配器模式
图1