当前位置:文档之家› 软件设计模式试题集58887

软件设计模式试题集58887

第5章设计模式一.选择1. 设计模式具有的优点()。

A.适应需求变化 B.程序易于理解C.减少开发过程中的代码开发工作量 D.简化软件系统的设计2. 设计模式一般用来解决什么样的问题( )。

A.同一问题的不同表相B不同问题的同一表相C.不同问题的不同表相D.以上都不是3. 设计模式的两大主题是( )。

A.系统的维护与开发 B 对象组合与类的继承C.系统架构与系统开发D.系统复用与系统扩展4. 以下哪些问题通过应用设计模式不能够解决。

()A)指定对象的接口B)针对接口编程C)确定软件的功能都正确实现D)设计应支持变化解答:1. A2. A3. D4. C二.填空1. 模式的基本要素包括名称、意图、问题、解决方案、参与者和协作者、()、实现、G oF参考。

2. 设计模式基本原则包括:开闭原则,(),包容变化原则。

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

4. 1. 在设计模式群体中,效果是指()。

解答:1. 效果2. 从场景进行设计的原则3. 抽象4. 原因和结果三.判断1. 适配器模式属于创建型模式。

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

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

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

解答:1. 错2. 对3. 错4. 对四.名词解释1. 设计模式2. 模板3. 模式4. 内聚度解答: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. B2. A3. D4. D二.填空1. Facade模式可以用来()系统。

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

2. Façade模式需要解决的问题是:只需要使用一个复杂系统的一个()。

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

3. Façade模式不仅可以为方法调用创建更()的接口,还可以减少客户必须处理的对象数量。

4. Façade外观模式的解决方案是向客户展现使用现有系统的一个新的()。

解答:1. 隐藏2. 子集3. 简单4. 接口三.判断1. Façade(外观)模式不仅可以为方法调用创建更简单的接口,还可以减少客户必须处理的对象数量。

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

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

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

()解答:1. 对3. 错4. 错四.名词解释1. Façade模式2. 接口3. 组合4. 耦合度解答:1. 模式定义了一个高层接口,这一接口使得这一子系统更加容易使用,为子系统中的一组接口提供一个一致的界面。

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

3.4.五.简答题1. Façade(外观)模式解决问题的方案是什么?如何实现?2. 请简要说明在一个复杂系统中应用Façade(外观)模式的优点。

3. Façade模式的意图是什么?4. 在Facade模式中,客户是如何使用子系统的?解答:1. 外观模式解决问题的方案是:Façade向客户展现使用现有系统的一个新的接口。

如何实现:定义一个(或一组)新的类来停工所需的接口。

让新的类使用现有的系统。

2. 当拥有一个复杂的系统时,Façade(外观)模式使我们只需要使用它的一部分功能。

最终我们将得到一个更简单,更容易使用的或根据我们的需要定制的系统。

3. 意图是希望那个简化现有系统的使用方法,需要定义自己的接口。

4.六.应用题1. 请论述在一个系统中应用Façade(外观)模式的必要性,并给出一种解决方案。

2. 请举例说明Facade模式和Adapter模式使用场景的差异,并说明它们的解决方案及表现的特点解答:1. Façade(外观)模式不仅可以为方法调用创建更简单的接口,还可以减少客户必须处理的对象数量。

举个例子。

假设有一个Client对象,这个对象必须处理Database、Model、Elem ent类的对象。

Client必须首先通过Database对象打开数据库,以得到一个对Model对象的引用,然后再向Model对象请求一个Element对象,最后向Element对象查询所需的信息。

而如果能创建一个DatabaseFacade类,让Client对象向它发出请求,那么上面的过程可能就会变得简单一些。

2.第7章Adapter(适配器)模式一.选择1. Adapter(适配器)模式的意图是()。

A. 希望简化现有系统的使用方法。

你需要定义自己的借口。

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

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

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

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

A.抽象工厂模式(Abstract Factory )B.工厂方法模式(Factory Method)C.适配器模式(Adapter)D.单例模式(Singleton)3. 将一个类的接口转换成客户希望的另一个接口。

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

A. 策略模式(Strategies)B.桥接模式(Bridge)C.适配器模式(Adapter)D.单例模式(Singleton)4. 以下关于结构型模式说法不正确的是。

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

B)结构型模式主要用于创建一组对象。

C)结构型模式可以创建一组类的统一访问接口。

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

解答:1. B2. C3. C4. B二.填空1. 适配器模式,分为类的适配器和对象的适配器两种实现。

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

2. Adapter模式有两种类型有:对象Adapter模式、()。

3. UML是一种用来创建()的图像语言。

4. ()模式使原本接口不兼容而不能一起工作的类可以一起工作。

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

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

解答:1. 组合聚合2. 类Adapter模式3. 程序模型4. Adapter适配器5. 继承三.判断1. 对象适配器模式是合成聚合复用原则的典型应用。

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

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

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

解答:1. 对2. 对3. 错4. 错四.名词解释1. Adapter模式2. 对象Adapter模式3. 类Adapter模式4. 多态解答:1. 将一个类的接口转换成客户希望的另外一个接口。

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

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

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

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

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

五.简答题1. 给出Adapter模式的定义及意图。

2. Adapter模式的最常见的用法是什么?该模式可以使你不用操心什么方面?3. Adapter模式问题的解决方案以及如何实现?4. 请简要说明在软件设计中设计模式的作用?解答:1. 意图是将一个类的接口转换成客户希望的另外一个接口。

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

2. Adapter模式最通常的用途就是保持多态。

Adapter模式让我们在进行设计时不必再担心现存类的接口问题.3. 解决方案是Adapter模式用我们需要的接口对无法修改的类进行包装。

实现:将现存的类包含在另一个类之中。

包容类与需要的接口相匹配,并调用被包容类的方法。

4. 软件设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类编目的代码设计经验的总结。

使用设计模式是为了适应需求变化、可重用代码、让代码更容易被他人理解、保证代码的可靠性。

六.应用题1. 根据你的理解,请分析Façade模式比Adapter模式的相同点和不同点,并说明它们在实际应用中的差异?2. 请说明什么是Adapter模式,Adapter模式有哪几种形式?请举例说明?解答:1. 在两个模式中,都拥有现存的类,但是在Façade模式中,无须针对某个接口进行设计;而在Adapter模式中则必须针对某个特定接口进行设计。

相关主题