软件设计模式试题集含答案doc.docx

上传人:b****6 文档编号:5880368 上传时间:2023-01-01 格式:DOCX 页数:40 大小:275.28KB
下载 相关 举报
软件设计模式试题集含答案doc.docx_第1页
第1页 / 共40页
软件设计模式试题集含答案doc.docx_第2页
第2页 / 共40页
软件设计模式试题集含答案doc.docx_第3页
第3页 / 共40页
软件设计模式试题集含答案doc.docx_第4页
第4页 / 共40页
软件设计模式试题集含答案doc.docx_第5页
第5页 / 共40页
点击查看更多>>
下载资源
资源描述

软件设计模式试题集含答案doc.docx

《软件设计模式试题集含答案doc.docx》由会员分享,可在线阅读,更多相关《软件设计模式试题集含答案doc.docx(40页珍藏版)》请在冰豆网上搜索。

软件设计模式试题集含答案doc.docx

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

设讣模式试题一・选择

1.设计模式具有的优点()o

A.

适应爲求变化

C.减少开发过程中的代码开发工作就

2.设计模式一般用来解决什么样的问题()。

A.同一问题的不同表相

C.不同问题的不同表相

3.设讣模式的两人主题是()。

A.系统的维沪与开发

C.系统架构与系统开发

4以卜哪些问题通过应用设计模式不能够解决。

0A)指定对彖的接口

C)确定软件的功能都正确实现

二填空

1.模式的基本更素包括名称、意图、问题、解决方案、参与者和协作者、(效果)、实现、GcF参考。

2.设计模式基本原则包括:

开闭原则,(从场景进行设计的原则),包容变化原则。

3.设计模式是一个(抽象)的方案,它可以解决一类问题。

4.1.在设讣模式群体中,效果是指(原因和结果)。

三.

判断

1.适配器模式属于创建型模式。

2.在设计模式中,“效果”只是指“原因和结果”。

3.设计模式使代码编制不能真正工程化。

4.设计模式的曲大主题是系统复用与系统扩展。

对四.

名词解释

1.设计模式

是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结.使用设计模式是为了可重用代码、让代码更容易被他人理解.保证代码可靠性・

2.模板

模式定义一个操作中的算法的骨架,而将一些步骤延迟到子类中•

3.模式

就是解决某一类问题的方法论・把解决某类问题的方法总结归纳到理论高度,那就是模式.

4.内聚度

模块内部各成分彼此结合的紧密程度・五•简答

1•什么是役讣模式?

设讣模式的日标是什么?

设计模式是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结・使用设计模式是为了可

重用代码.让代码更容易被他人理解.保证代码可靠性・

2.设计模式的基本要素有哪些?

名称,意图,问题,解决方案,参与者和协作者,效果,实现,GOF参考.

3.设计模式中一般都遵循的原则有什么?

开-闭原则,根据场景进行设计原则,优先组合原则,包容变化原则・

4四人团针对紀创建优秀面向对彖役讣”建议了哪些策略?

针对接口编程,优先使用对象组合而不是类继承,找到并封装变化点.

笫6章facade(外观)模式

—・选择

外观模式的作用是()。

A.当不能采用生成子类的方法进行扩充时,动态地给一个対象添加一些额外的功能•B.为了系统中的一组功能调用提供一个一致的接口,这个接口使得这一子系统更加容易使用.

C.保证一个类仅有一个实例,并捉供一个访问他的全局访问点。

D.在方法中定义算法的框架,而将算法中的一些操作步骤延迟到子类中实现。

1.Facade(外观)模式的总:

图是()。

A.希望简化现有系统的使用方法,你需要定义自己的接口.

B.将一个无法控制的现有对象与一个特定借口相匹配。

C.将一组实现部分从另一组使用它们的对象中分离出來。

D.你需耍为特定的客户(或情况)提供特定系列的对象。

2.

()模式定义了一个高戻接口,这个接口使得这一了系统更加容易使用。

1.Facade模式可以用來(隐藏)系统。

该模式能够将系统作为自己的私有成员包含进来。

2.Facade模式要解决的问题:

只需要使用一个复杂系统的•个(子集)。

或者,需要用一种特殊的方式与系统交互.

3.Facade模式不仅可以为方法调川创建更(简单)的接口■还可以减少客户必须处理的对象数量。

4Facade外观模式的解决方案是向客户展现使用现有系统的个新的(接口)。

三.判断

1.Facade(外观)模式不仅可以为方法调用创建更简单的接【1,还可以减少客户必须处理的对象数吊。

2.外观模式,当不能采用生成子类的方法进行扩充时,动态地给一个对象添加一些额外的功能。

3.Facade模式为子系统中的一组接口提供的界面可能不一致。

4.Facade外观模式只能为方法调用创建更简单的接口,不能减少客户必须处理的对象数量。

错四.名词解释

1.Fagde模式模式定义了一个高层接口,使得这一子系统更加容易使用,为子系统中的一组接口提供一个一

致的界面.

2.接口

包含了一系列不被实现的方法,而把这些方法的实现交给继承它的类.

3.组合一个类是另一个类的组成成分・

4.耦合度对模块间关联程度的度疑.五•简答

1.Facade(外观)模式解决问题的方案是什么?

如何实现?

Facade向客户展现使用现有系统的一个新的接口・如何实现:

定义一个(或一组〉新的类来封装所需的接口.让新的类使用现有的系统.

2请简要说明在一个复杂系统中应用Facade(外观)模式的优点。

当拥有一个复杂的系统时,Fapad©(外观)模式使我们只需要使用它的一部分功能.最终我们将得到一个更简

单,更容易使用的或根据我们的爲要定制的系统.

3.Facade模式的息图是什么?

望那个简化现有系统的使用方海需要定义自己的接口•

4.任Facade模式中,客户是如何使用子系统的?

六.应用题

1•请论述任一个系统中应用Facade(外观)模式的必要性,并给出一种解决方案。

F^ade(外观〉模式不仅可以为方法调用创建更简单的接口,还可以减少客户必须处理的对象数量.举个例子.

假设有一个Client对氧这个对象必须处理Database^Model.Element类的对象・Client必须首先通过Database对象打开数据库.以得到一个对Model对象的引用,然后再向Model对象请求一个Element对象,最后向Element对象查询所需的信息•而如果能创建一个DatabaseFacade类,让Client对象向它发出请求,那么上面的过程可能就会变得简单一些•

2•请举例说明Facade模式和Adapter模式使用场景的差异,并说明它们的解决方案及表现的特点•

第7章Adapter(fi配器)模式=

选择

1.Adapter(适配器)模式的总图是()。

A.希望简化现冇系统的使用方法.你需要定义白己的借口。

B.将一个无法控制的现有对象与一个特定借口相匹配•

C.将一组实现部分从另一组使用它们的对象中分离出來。

D.你需耍为特定的客户(或情况)提供特定系列的对象。

2.下面不属于创建型模式的有()o

A.抽象工厂模式(AbstractFactory)B.工厂方法模式(FactoryMethod)

C.适配器模式(Adapter)D.单例模式(Smgleton)

3.将一个类的接口转换成客户希望的另一个接口。

这句话是对下列哪种模式的描述()o

A策略模式(Strategies)B.桥接模式(Bridge)

C.适配器模式(Adapter)D.单例模式(Singleton)

4以下关于结构型模式说法不正确的是。

0A)结构型模式可以在不破坏类封装性的垄础上,实现新的功能。

B)结构型模式主要用于创建一组对象•C)结构型模式可以创建一组类的统一访问接口。

D)结构型模式可以在不破坏类封装性的基础上,使得类可以同不曾佔计到的系统进行交互。

二.填空

1.适配器模式,分为类的适配器和对象的适配器两种实现。

其屮类的适配器采用的是继承关系,而对象适配器采用的是(组合聚合)关系。

2.

Adapter模式有•两种类型有:

对象Adapter模式、

3.UML足一种用來创建(程序模型)的图像语言。

4.(Adapter适配器)模式使原本接不兼容而不能一起I•作的类川以一起匸作。

5.适配器模式,分为类的适配器和对象的适配器两种实现。

其屮类的适配器采用的是(继承)关系,而对象适配器采用的是组合聚类关系。

1.对象适配器模式是合成聚合复用原则的典型应用。

2.Adapter模式使原本由于接口不兼容而不能一起工作的那些类可以一起工作。

3.Facade模式和Adapter模式是相同类型的包装器。

4.Adapter模式不是必须针对某个接口进行设计。

四•名词解释

1.Adapter模式

将一个类的接口转换成客户希望的另外一个接口•Adapter模式使原本由于接口不兼容而不能一起工作的那些类可以一起工作.

2.对象Adapter模式

使用Adapter模式与适当的抽象类相匹配,它通常依赖于f对象(适配对象)包含另一个对象(被适配对象)■

3.类Adapter模式

当实现Adapter模式的方法是使用多重继承。

在这种情况下,它被成为类Adapter模式。

4多态

相关的对象按照各自类型来实现方法的能力.五.

简答题

1.给出Adapter模式的定义及总图。

意图是将一个类的接口转换成客户希望的另外一个接口•Adapter模式使原本由于接口不兼容而不能一起工作的那些类可以一起工作・

2.Adapter模式的最常见的用法是什么?

该模式可以使你不用操心什么方面?

Adapter模式最通常的用绘就是保持多态.Adapter模式让我们在进行设计时不必再担心现存类的接口问题.

3.Adapter模式问題的解决方案以及如何实现?

解决方案是Adapter模式用我们需要的接口对无法修改的类进行包装.实现:

将现存的类包含在另一个类之中.包容类与需要的接口相匹配,并调用被包容类的方法.4.

请简要说明在软件设计中设计模式的作用?

软件设计模式(DesignPattern)是一套被反复使用、多数人知晓的.经过分类编目的代码设计经验的总结・使用设计模式是为了适应需求变化.可重用代码.让代码更容易被他人理解.保证代码的可靠性.

六.应用题

1.根据你的理解,请分析Facade模式比Adapter模式的相同点和不同点,并说明它们在实际应川中的筮异?

在两个模式中,都拥有现存的类.但是在Facade模式中,无须针对某个接口进行设计;而在Adapter模式中则必须针对某个蒔定接口进行设计•在F^ade模式中,动机是简化接口,而在Adapter模式中,尽骨也是越简单越好,目的是针对一个现有的接口进行设计,并不能简化任何东西,即使可能有另一个更简单的接口.总之,在实际应用中.Facade模式简化接口,而Adapter模式将接口转换成另一个现有的接口.

2•请说明什么是Adapter模式,Adapter模式有哪儿种形式?

请举例说明?

笫8章扩展我们的视野

第9章Bridge(桥接)模式一•选

1.关于继承表述错误的是:

(九人继承是一种通过扩展一个己有对象的实现,从而获得新功能的复用方法。

B.超类可以显式地捕获那些公共的属性和方法。

子类则通过附加属性和方法來进行实现的扩展。

C•在一定意义上说破坏了封装性,因为这会将父类的实现细节眾露给子类。

D•继承本质上是“白盒复用J对父类的修改,不会杉响到子类.

2.在不破坏类封装性的基础上,使得类可以同小曾估计到的系统进行交互。

主姿体现在()o

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.按照四人团的说法.Bridget式的意图是()。

A.将抽象部分与它的实现部分相分离,使它们可以独立地变化.

B.将抽象部分与它的实现部分相分离,但它们不能独立地变化.

C.将抽象部分与它的实现部分相结合,但它们可以独立地变化.

D.将抽象部分与它的实现部分相结合,使它们相互依赖.

7.以下叙述不对的是().

A.Bridge模式是将抽象部分与它的实现部分分离,使它们可以独立地变化.

B.Bridge模式是发现并封装不同点的极好例子.

C.Bridge模式优先使用继承而不是组合.

D.Bridge式优先使用组合而不是继承.

8.以下叙述不对的是()。

A.学习设计模式告诉我们要尽可能使用继承.

B.学习设计模式通常可以找到比仅采用面向对象方法更好的解决方案.

C.学习设计模式告诉我们要尽可能使用组合.

D.Bridge模式适用于一个抽象部分拥有不同的实现部分的情形

9.对Alexander的模式哲学,以下叙述正确的是().

A学习设计模式,可以完全解决软件开发中的变化悄况.

B.毎个模式,可以无数次使用模式提供的解决方案,而不必再次畫复同样的工作方式.

C.设计模式总是可以为需求的变化提供更好的解决方案.

D.设汁模式描述-个任开发的软件坏境中不断产生新的问題时,能提供很好的解决方案.

10.根据Coplien关于共同点/变化点的说法,下面哪个是正确的()o

A.共同点分析就是寻找一个不会随时间变化的结构,而变化点分析就是捕捉变化的内容.

B.共同点分析是寻找家族成员的相同元素.

C.在一个系统中,共同点和不同点的关系是相对的,可以互相转化.

D.共同点通常由父类实现,而变化点通常由子类实现.

二填空

1.在存在继承关系的惜况卜,方法向超类方向集中,而数据向(子类)方向集中.

2.当存在一个拍象有不同实现时Bridge模式最为有用,它可以使抽象和(实现)相互独立地进行变化。

3.(类型的封装)是通过多态使用具有派生类的抽象类实现的。

4.在进行设计以应对变化的过程中,应该遵循两条基本策略:

找出变化并(封装变化点);优先使用对象组合,而不是类继承。

5.C++中,必须用一个定义(公共接口)的抽象类来实现Bridge模式的实现部分。

6.为了提高内聚和(松耦合),我们经常会抽象出一些类的公共接II以形成抽象基类或者接【1・

7.封装性好的代码更容易测试,因为它与其他代码没有(耦合)。

8.Bridge(桥接)模式足将抽象部分与它的实现部分分离,其屮(实现部分)足指用來实现抽象类的派生类的对象。

9.在进行设讣以应对变化的过程中,应该遵循两条基本策略:

找出变化并封装变化点;优先使用对象(组合),而不是类继承。

三.判断

1.为了提高内聚和紧耦合,我们经常会抽象出一些类的公共接口以形成抽彖基类或者接口。

2.继承本质上是“白盒复用”,对父类的修改,不会影响到子类。

3.继承是一种通过扩展一个已有对象的实现,从而获得新功能的复用方法。

4.即使在不知道如何实现Bridge(桥接)模式时,你也可以判断出在这种情况下这个模式足适川的。

5.在创建设计以处理变化的过程中,应该优先使用类继承,而不是使用对象组合。

6.只有在共同点分析定义的上下文中,变化点才有意义。

7.变化点就是领域问题的特殊情形,而共同点则是指-般情形。

8.Bridge模式就是为系统提供一种高内聚,松耦合的解决方案。

9.当需要增加系统的功能时•应当采用Bridge模式.错

封装就是指数据隐藏。

四•名词解释

1.抽象是指不同事物之间概念上的联系方式.

2.亜构修改代码改进结构但不増加新功能,就是所谓重构.

3.内聚性指的是例程中操作之间联系的紧密程度.

4.耦合性指的是两个例程之间联系的紧密程度.

5.Bridge(桥梁)模式将抽象化与实现化脱耦,使得二者可以独立的变化就是说将他们之间的强关联变成弱关联,

也就是指在一个软

件系统的抽象化和实现化之间使用组合/聚合关系而不是继承关系,从而使两者可以独立的变化•K.简答题

1.Bridge模式要解决的基本问题是什么?

Bridge(桥接)模式适用于一个抽象部分拥有不同的实现部分的情况,

它让抽象部分和实现部分可以各自独立

的变化.

2.给出Bridge模式的定义。

采用Bridge模式的效果是什么?

将抽象化与实现化脱耦,使得二者可以独立的变化,

也就是说将他们之间的强关联变成弱关联■也就是指在一

个软件系统的抽象化和实现化之间使用组合/聚合关系而不是继承关系,从而使两者可以独立的变化•效果是:

“实现部分与使用它的对象的分离”増加了灵活性•客户对象不需要了解实现问题.

3.什么是条规则,一个地方”?

抽象类经常让自己的方法实际使用实现部分对象•抽象部分的派生类将调用

这些方法.这样如果需要修改,修

改也会容易些,并且在实现整个模式之前让你拥有一个好的起点・

4任学习Bridge(桥接)模式的过程中,应该遵循卜列处理变化的棊本策略是什么?

找出变化并封装变化点;优先使用对象组合,而不是类继承•

5.Bridge(桥接)模式的解决方案是什么,以及如何实现?

解决的问题是:

为所有的实现部分定义一个接口,让抽象类的所有派生类使用这个接口•实现:

将实现部分封

装在一个抽象类中.在被实现的抽象部分基类中包含一个实现部分基类的句柄・六•应川

1.根据你对Bridge模式的理解,概要描述使川该模式的应川要求,并给出相应的设il•类图。

当存在一个抽象有

不同实现时Bridge模式最为有用,它可以使抽象和实现相互独立地进行变化•

2.举例说明使用Bridge模式的场合,给出在该场合下使用Bridge模式的解决方案,并说明该解决方案的优点。

打印驱动程序是Bridge模式最典型的例子.也是最适合应用Bridge模式的场合.Bridge模式的真正威力在于它能够帮助我们看到什么时候应该从问题域中提取实现•也就是说,有时候有一个实体X使用系统&一个实体Y使用系统T.我们可能认为X总是与S相伴,而Y总是与T相伴,因此就将它们联系(耦合)起来.Bridge模式提醒我们,可以抽象出S和T,这样更好,也就是说,Bridge模式最有用的地方,是在解耦抽象与实现之前考虑Bridge模式是否适用•

第10章AbstractFactory(抽魚工厂)模式

—•选暮

1.静态工厂的核心角色是()O

A•抽象产品B•具体产品C.静态工厂D.消费者

2.以下属于创建型模式的是().

B装饰模式(Decorator)

D桥接模式(Bridge)

D桥接模式

A抽象工厂模式(AbstractFactory)

C外观模式(Facade)

3.下面的类图表示的是哪个设计模式?

()。

A抽象工厂模式B观察者模式C策略模式

 

ProductBI

ProductB2|

1

4.AbstractFactory(抽象工厂)模式的意图是()。

A.希望简化现有系统的使用方法・你需要定义自己的借口。

B.将一个无法控制的现有对象与一个特定借口相匹配。

C.将一组实现部分从另一组使用它们的对象中分离岀来。

D-提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类

5.在根据不同的机器选择设备驱动程序的案例中,以下叙述不准确的是()。

A.可以使用switch语句选择驱动程序.

B.可以使用继承来实现选择驱动程序,但它可能会产生类组合爆炸问题…

C.可以选择抽象工厂模式实现■且能避免组合爆炸问题.

D.使用继承的解决方案要比switch语句有更多的优势.

6.以下有关AbstractFactory(抽象工厂)模式正确的是()。

AAbstractFactory的实例化方法就是具体工厂方法.

B.AbstractFactory类和具体工厂方法可以分离,每个具体工厂负责一个抽象工厂方法接口的实现.

C.由于AbstractFactory类和具体工厂方法可以分离,因此在实现时会产生更多的类.

D.当问题存在相同的对象用于解决不同的情形时,应该使用抽象工厂模式.

7.根据《设计模式》,有关抽象工厂模式的定义,准确的说法是()•

A工厂方法是一个抽彖类的派生类实现的。

B要创造的东西本身是抽象定义的,工厂方法可以灵活实现.C.抽象匸厂只关注概念,而具体匸厂创建抽象工厂。

D抽象工厂派生岀具体工厂对象和实现方法•

8.关于抽象工厂模式,以下叙述不正确的是()

A客户对象不需要知道向谁请求所需的对象和如何使用这些对象・

B抽象工厂类通过为每个不同类型的对象定义一个方法,来指定实例化哪个对象。

C具体工厂对彖负责指定哪些对象要实例化。

D将抽象工厂模式和适配器模式结合任一起,可以将概念相似的对象当作同种对象处理。

9.关于抽象工厂模式(AbstractFactory),以下叙述正确的是()。

A抽象工厂相对具体工厂而言,可以理解为抽象工厂是抽象类,而具体工厂是对抽象工厂的继承,是抽象工厂的子类。

B抽象工厂类不能实例化,具体工厂可以实例化。

C抽象工厂定义接口,具体工厂实现某一接口・

D抽象工厂模式将使川哪些对级的规则与如何使用这些对線的逻辑仃效地结合起來。

10.下面属于创建型模式的有()。

A.抽象工厂(AbstractFactory)模式

B.外观(Facade)模式C.适配器

(Adapter)模式D.桥接(Bridge)模式

二填空

1.(抽象工厂)模式提供了一系列相关或柑互依赖対象的接口而无需指定他们具体的类。

2.工厂模式分为简单工厂,工厂方法,(工厂方法)三种类型。

3.AbstractFactory模式就是用來解决这类问题的:

要创建-组相关或者(相互依赖)的对象。

4.AbstractFactory模式强调的是为创建多个相互依赖的对象提洪一个(同一的接口)。

5.我们可以使用(抽象工厂)模式,不同应用程序都使用同一子系统。

6.AbstractFactory懣图提供-个创建一系列相关或相互依赖对象的接口,而无盂指定它们(具体的类)。

7.当一个系统要(独立)于它的产品的创建、组合和农示时适合用AbstractFactory模式。

8.AbstractFactory模式为如何创建对象组的每个成员定义(接口)。

9.抽象工厂模式是定义一个(抽象类),然后为每个组实现一个具体类.

10.AbstractFactory模式将如何执行对象(实例化)规则从使用这些对象的客户对象提取出来.三•判断

1.抽象工厂模式提供了一系列相关或相互依赖对象的接口且必须指定他们具体的类。

2.AbstractFactory(抽象工厂)模式确保系统总能根据当前的情况茯得合适的对彖。

3.AbstractFactory(抽彖工厂)模式中,客户对象不需知道“向谁诫求需要的对象”“如何使用这些对象”。

4.典型情况下,一个AbstractFactory对象将针对每种必须实例化的对象拥有一个方法.对

5.决定需要哪个工厂对象,实际上是判断需要那个系列的对象。

6.从本质上看,switch语句可以达到和抽象工厂相同的效果。

7.抽象工厂模式简化了设计过程。

8.一个抽象工厂对象总是要和一个具体工厂方法对象相结合。

9.抽彖工厂模式告诉我们,要针对接口而不是实现进行设计。

10.使用抽彖工厂方法与优先使用组合是相牙盾的。

四.名词解释

1..AbstractFactory(抽象工厂)模式就是用来解决这类问题的:

要创建一组

相关或者相互依赖的对象.

2.组合爆炸

随着问题中元素的增加,所出现的可能组合数剧烈增加,形象的说法就是组合爆炸.

3.封装

任何形式的龟藏.对象对它们的数据进行封装。

抽象类对它们派生出的具体类进行封装

4.抽象类

为一组概念上相似的类定义方法和公共属性.抽

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1