体系结构期末复习一、选择题(一)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.定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。12345678910CDADADACDD11121314151617181920DADDCADBCD(二)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.将一个复杂对象的构建与它的表示分离。12345678910DABCCDAABC11121314151617181920BCCBDCCACC(三)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.适配器模式图18.Open-Close开闭原则的含义是一个软件实体(A)A.应当对扩展开放,对修改关闭。B.应当对修改开放,对扩展关闭。C.应当对继承开放,对修改关闭。D.以上都不对。9.以下意图哪个是用来描述组合模式?(C)A.为其他对象提供一种代理以控制对这个对象的访问。B.运用共享技术有效地支持大量细粒度的对象。C.将对象组合成树形结构以表示“部分-整体”的层次结构。D.将一个复杂对象的构建与它的表示分离。10.以下意图哪个是用来描述状态模式?(C)A.使多个对象都有机会处理请求,避免请求的发送者和接收者之间的耦合关系。B.顺序访问一个聚合对象中各个元素,而又不需暴露该对象的内部表示。C.允许一个对象在其内部状态改变时改变它的行为。看起来似乎修改了它的类。D.捕获一个对象的内部状态,并在该对象之外保存这个状态。12345678910ADACDADACC(四)1.当我们想创建一个具体的对象而又不希望指定具体的类时,可以使用(A)模式A.创建型B.结构型C.行为型D..以上都不对2.以下对开-闭原则的一些描述错误的是(A)A.开-闭原则与对可变性的封装原则没有相似性。B.找到一个系统的可变元素,将它封装起来,叫开-闭原则。C.对修改关闭:是其原则之一。D.从抽象层导出一个或多个新的具体类可以改变系统的行为,是其原则之一。3.依据设计模式思想,程序开发中应优先使用的是(B)关系实现复用。A.继承B.组合聚合C.创建D..以上都不对4.“知道的越少越好”是对(D)设计原则的通俗表述。A.接口隔离B.里氏代换C.依赖倒转D..迪米特法则5.在适配器模式中,对象适配器模式是对(A)设计原则的典型应用A.合成聚合B.里氏代换C.依赖倒转D..迪米特法则6.保证一个类仅有一个实例,并提供一个访问它的全局访问点。这句话是对(D)设计模式的描述。A.外观模式B.策略模式C.适配器模式D.单例模式7.以下意图哪个是用来描述策略模式?(D)A.将抽象部分与它的实现部分分离,使它们都可以独立地变化。B.将一个复杂对象的构建与它的表示分离。C.将抽象部分与它的实现部分分离,使它们都可以独立地变化。D.定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。8.以下不属于结构型模式是(C)A.组合模式B.适配器模式C.访问者模式D.桥接模式9.下面的类图表示的是哪个设计模式(D)A.策略模式B.状态模式C.适配器模式D.桥接模式10.以下意图哪个是用来描述状态模式?(C)A.使多个对象都有机会处理请求,避免请求的发送者和接收者之间的耦合关系。B.顺序访问一个聚合对象中各个元素,而又不需暴露该对象的内部表示。C.允许一个对象在其内部状态改变时改变它的行为。看起来似乎修改了它的类。D.捕获一个对象的内部状态,并在该对象之外保存这个状态。12345678910AABDADDCDC(五)1.常用的设计模式可分为(A)A.创建型、结构型和行为型B.对象型、结构型和行为型C.过程型、创建型和结构型D.抽象型、接口