软件设计模式试题集(含答案)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

设计模式试题一.选择1.设计模式具有的优点()。A.适应需求变化B.程序易于理解C.减少开发过程中的代码开发工作量D.简化软件系统的设计2.设计模式一般用来解决什么样的问题()。A.同一问题的不同表相B不同问题的同一表相C.不同问题的不同表相D.以上都不是3.设计模式的两大主题是()。A.系统的维护与开发B.对象组合与类的继承C.系统架构与系统开发D.系统复用与系统扩展4.以下哪些问题通过应用设计模式不能够解决。()A)指定对象的接口B)针对接口编程C)确定软件的功能都正确实现D)设计应支持变化二.填空1.模式的基本要素包括名称、意图、问题、解决方案、参与者和协作者、(效果)、实现、GoF参考。2.设计模式基本原则包括:开闭原则,(从场景进行设计的原则),包容变化原则。3.设计模式是一个(抽象)的方案,它可以解决一类问题。4.1.在设计模式群体中,效果是指(原因和结果)。三.判断1.适配器模式属于创建型模式。错2.在设计模式中,“效果”只是指“原因和结果”。对3.设计模式使代码编制不能真正工程化。错4.设计模式的两大主题是系统复用与系统扩展。对四.名词解释1.设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。2.模板模式定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。3.模式就是解决某一类问题的方法论。把解决某类问题的方法总结归纳到理论高度,那就是模式。4.内聚度模块内部各成分彼此结合的紧密程度。五.简答题1.什么是设计模式?设计模式的目标是什么?设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。2.设计模式的基本要素有哪些?名称,意图,问题,解决方案,参与者和协作者,效果,实现,GOF参考。3.设计模式中一般都遵循的原则有什么?开-闭原则,根据场景进行设计原则,优先组合原则,包容变化原则。4.四人团针对“创建优秀面向对象设计”建议了哪些策略?针对接口编程,优先使用对象组合而不是类继承,找到并封装变化点。第6章facade(外观)模式一.选择1.外观模式的作用是()。A.当不能采用生成子类的方法进行扩充时,动态地给一个对象添加一些额外的功能。B.为了系统中的一组功能调用提供一个一致的接口,这个接口使得这一子系统更加容易使用。C.保证一个类仅有一个实例,并提供一个访问他的全局访问点。D.在方法中定义算法的框架,而将算法中的一些操作步骤延迟到子类中实现。2.Façade(外观)模式的意图是()。A.希望简化现有系统的使用方法,你需要定义自己的接口。B.将一个无法控制的现有对象与一个特定借口相匹配。C.将一组实现部分从另一组使用它们的对象中分离出来。D.你需要为特定的客户(或情况)提供特定系列的对象。3.()模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。A.Adapter(适配器)模式B.Bridge(桥接)模式C.Strategy(策略)模式D.Facade(外观)模式4.下面属于结构模式的有()。A观察者模式(Observer)B.单例模式(Singleton)C.策略模式(Strategy)D.外观模式(Façade)二.填空1.Facade模式可以用来(隐藏)系统。该模式能够将系统作为自己的私有成员包含进来。2.Façade模式要解决的问题:只需要使用一个复杂系统的一个(子集)。或者,需要用一种特殊的方式与系统交互。3.Façade模式不仅可以为方法调用创建更(简单)的接口,还可以减少客户必须处理的对象数量。4.Façade外观模式的解决方案是向客户展现使用现有系统的一个新的(接口)。三.判断1.Façade(外观)模式不仅可以为方法调用创建更简单的接口,还可以减少客户必须处理的对象数量。对2.外观模式,当不能采用生成子类的方法进行扩充时,动态地给一个对象添加一些额外的功能。错3.Façade模式为子系统中的一组接口提供的界面可能不一致。错4.Façade外观模式只能为方法调用创建更简单的接口,不能减少客户必须处理的对象数量。错四.名词解释1.Façade模式模式定义了一个高层接口,使得这一子系统更加容易使用,为子系统中的一组接口提供一个一致的界面。2.接口包含了一系列不被实现的方法,而把这些方法的实现交给继承它的类。3.组合一个类是另一个类的组成成分。4.耦合度对模块间关联程度的度量。五.简答题1.Façade(外观)模式解决问题的方案是什么?如何实现?Façade向客户展现使用现有系统的一个新的接口。如何实现:定义一个(或一组)新的类来封装所需的接口。让新的类使用现有的系统。2.请简要说明在一个复杂系统中应用Façade(外观)模式的优点。当拥有一个复杂的系统时,Façade(外观)模式使我们只需要使用它的一部分功能。最终我们将得到一个更简单,更容易使用的或根据我们的需要定制的系统。3.Façade模式的意图是什么?望那个简化现有系统的使用方法,需要定义自己的接口。4.在Facade模式中,客户是如何使用子系统的?六.应用题1.请论述在一个系统中应用Façade(外观)模式的必要性,并给出一种解决方案。Façade(外观)模式不仅可以为方法调用创建更简单的接口,还可以减少客户必须处理的对象数量。举个例子。假设有一个Client对象,这个对象必须处理Database、Model、Element类的对象。Client必须首先通过Database对象打开数据库,以得到一个对Model对象的引用,然后再向Model对象请求一个Element对象,最后向Element对象查询所需的信息。而如果能创建一个DatabaseFacade类,让Client对象向它发出请求,那么上面的过程可能就会变得简单一些。2.请举例说明Facade模式和Adapter模式使用场景的差异,并说明它们的解决方案及表现的特点。第7章Adapter(适配器)模式一.选择1.Adapter(适配器)模式的意图是()。A.希望简化现有系统的使用方法。你需要定义自己的借口。B.将一个无法控制的现有对象与一个特定借口相匹配。C.将一组实现部分从另一组使用它们的对象中分离出来。D.你需要为特定的客户(或情况)提供特定系列的对象。2.下面不属于创建型模式的有()。A.抽象工厂模式(AbstractFactory)B.工厂方法模式(FactoryMethod)C.适配器模式(Adapter)D.单例模式(Singleton)3.将一个类的接口转换成客户希望的另一个接口。这句话是对下列哪种模式的描述()。A.策略模式(Strategies)B.桥接模式(Bridge)C.适配器模式(Adapter)D.单例模式(Singleton)4.以下关于结构型模式说法不正确的是。()A)结构型模式可以在不破坏类封装性的基础上,实现新的功能。B)结构型模式主要用于创建一组对象。C)结构型模式可以创建一组类的统一访问接口。D)结构型模式可以在不破坏类封装性的基础上,使得类可以同不曾估计到的系统进行交互。二.填空1.适配器模式,分为类的适配器和对象的适配器两种实现。其中类的适配器采用的是继承关系,而对象适配器采用的是(组合聚合)关系。2.Adapter模式有两种类型有:对象Adapter模式、(类Adapter模式)。3.UML是一种用来创建(程序模型)的图像语言。4.(Adapter适配器)模式使原本接口不兼容而不能一起工作的类可以一起工作。5.适配器模式,分为类的适配器和对象的适配器两种实现。其中类的适配器采用的是(继承)关系,而对象适配器采用的是组合聚类关系。三.判断1.对象适配器模式是合成聚合复用原则的典型应用。对2.Adapter模式使原本由于接口不兼容而不能一起工作的那些类可以一起工作。对3.Façade模式和Adapter模式是相同类型的包装器。错4.Adapter模式不是必须针对某个接口进行设计。错四.名词解释1.Adapter模式将一个类的接口转换成客户希望的另外一个接口。Adapter模式使原本由于接口不兼容而不能一起工作的那些类可以一起工作。2.对象Adapter模式使用Adapter模式与适当的抽象类相匹配,它通常依赖于一个对象(适配对象)包含另一个对象(被适配对象)。3.类Adapter模式当实现Adapter模式的方法是使用多重继承。在这种情况下,它被成为类Adapter模式。4.多态相关的对象按照各自类型来实现方法的能力。五.简答题1.给出Adapter模式的定义及意图。意图是将一个类的接口转换成客户希望的另外一个接口。Adapter模式使原本由于接口不兼容而不能一起工作的那些类可以一起工作。2.Adapter模式的最常见的用法是什么?该模式可以使你不用操心什么方面?Adapter模式最通常的用途就是保持多态。Adapter模式让我们在进行设计时不必再担心现存类的接口问题。3.Adapter模式问题的解决方案以及如何实现?解决方案是Adapter模式用我们需要的接口对无法修改的类进行包装。实现:将现存的类包含在另一个类之中。包容类与需要的接口相匹配,并调用被包容类的方法。4.请简要说明在软件设计中设计模式的作用?软件设计模式(DesignPattern)是一套被反复使用、多数人知晓的、经过分类编目的代码设计经验的总结。使用设计模式是为了适应需求变化、可重用代码、让代码更容易被他人理解、保证代码的可靠性。六.应用题1.根据你的理解,请分析Façade模式比Adapter模式的相同点和不同点,并说明它们在实际应用中的差异?在两个模式中,都拥有现存的类,但是在Façade模式中,无须针对某个接口进行设计;而在Adapter模式中则必须针对某个特定接口进行设计。在Façade模式中,动机是简化接口,而在Adapter模式中,尽管也是越简单越好,目的是针对一个现有的接口进行设计,并不能简化任何东西,即使可能有另一个更简单的接口。总之,在实际应用中,Façade模式简化接口,而Adapter模式将接口转换成另一个现有的接口。2.请说明什么是Adapter模式,Adapter模式有哪几种形式?请举例说明?第8章扩展我们的视野第9章Bridge(桥接)模式一.选择1.关于继承表述错误的是:()。A.继承是一种通过扩展一个已有对象的实现,从而获得新功能的复用方法。B.超类可以显式地捕获那些公共的属性和方法。子类则通过附加属性和方法来进行实现的扩展。C.在一定意义上说破坏了封装性,因为这会将父类的实现细节暴露给子类。D.继承本质上是“白盒复用”,对父类的修改,不会影响到子类。2.在不破坏类封装性的基础上,使得类可以同不曾估计到的系统进行交互。主要体现在()。A外观模式(Facade)B装饰模式(Decorator)C策略模式(Strategies)D桥接模式(Bridge)3.行为类模式使用()在类间分派行为。A接口B继承机制C对象组合D委托4.下面的类图表示的是哪个设计模式?()。A抽象工厂模式(AbstractFactory)B观察者模式(Observer)C策略模式(Strategies)D桥接模式(Bridge)5.Bridge(桥接)模式的意图是()。A.希望简化现有系统的使用方法。你需要定义自己的借口。B.将一个无法控制的现有对象与一个特定借口相匹配。C.将一组实现部分从另一组使用它们的对象中分离出来。D.你需要为特定的客户(或情况)提供特定系列的对象。6.按照四人团的说法,Bridge模式的意图是()。A.将抽象部分与它的实现部分相分离,使它们可以独立地变化.B.将抽象部分与它的实现部分相分离,但它们不能独立地变化.C.将抽象部分与它的实现部分相结合,但它们可以独立地变化.D.将抽象部分与它的实现部分相结合,使它们相互依赖.7.以下叙述不对的是()。A.Bridge模式是将抽象部分与它的实现部分分离,使它们可以独立地变化.B.Bridge模式

1 / 22
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功