设计模式试题.docx

上传人:b****5 文档编号:5032341 上传时间:2022-12-12 格式:DOCX 页数:17 大小:391.88KB
下载 相关 举报
设计模式试题.docx_第1页
第1页 / 共17页
设计模式试题.docx_第2页
第2页 / 共17页
设计模式试题.docx_第3页
第3页 / 共17页
设计模式试题.docx_第4页
第4页 / 共17页
设计模式试题.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

设计模式试题.docx

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

设计模式试题.docx

设计模式试题

1、设计模式一般用来解决什么样的问题(a)

   A.同一问题的不同表相   B不同问题的同一表相

   C.不同问题的不同表相   D.以上都不是

2、下列属于面向对象基本原则的是(c)

   A.继承 B.封装C.里氏代换 D都不是

3、Open-Close原则的含义是一个软件实体(a)

   A.应当对扩展开放,对修改关闭.

   B.应当对修改开放,对扩展关闭

   C.应当对继承开放,对修改关闭

   D.以上都不对

4、当我们想创建一个具体的对象而又不希望指定具体的类时,可以使用(a)模式。

   A.创建型 B.结构型C行为型D.以上都可以

5、要依赖于抽象,不要依赖于具体。

即针对接口编程,不要针对实现编程,是(d)的表述

   A.开-闭原则

   B.接口隔离原则

   C.里氏代换原则

   D.依赖倒转原则

6、依据设计模式思想,程序开发中应优先使用的是(a)关系实现复用。

   A,委派 B.继承 C创建  D.以上都不对

   复用方式:

继承和组合聚合(组合委派)

7、设计模式的两大主题是(d)

   A.系统的维护与开发      B对象组合与类的继承

   C.系统架构与系统开发    D.系统复用与系统扩展

8、单例模式中,两个基本要点(ab)和单子类自己提供单例

   A.构造函数私有   B.唯一实例

   C.静态工厂方法   D.以上都不对

9、下列模式中,属于行为模式的是(b)

   A.工厂模式  B观察者  C适配器 以上都是

10、“不要和陌生人说话”是(d)原则的通俗表述

   A.接口隔离  B.里氏代换 C.依赖倒转  D.迪米特:

一个对象应对其他对象尽可能少的了解

11、构造者的的退化模式是通过合并(c)角色完成退化的。

   A.抽象产品   B产品   C创建者    D使用者

12、单子(单例,单态)模式类图结构如下:

   下列论述中,关于”0..1”表述的不正确的是(d)

   A.1表示,一个单例类中,最多可以有一个实例.

   B.”0..1”表示单例类中有不多于一个的实例

   C.0表示单例类中可以没有任何实例

   D.0表示单例类可以提供其他非自身的实例

13、对象适配器模式是(a)原则的典型应用。

   A.合成聚合复用原则    B.里式代换原则

   C.依赖倒转原则       D.迪米特法则

14、静态工厂的核心角色是(a)

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

15、下列关于静态工厂与工厂方法表述错误的是:

(a)

   A.两者都满足开闭原则:

静态工厂以ifelse方式创建对象,增加需求的时候会修改源代码

   B.静态工厂对具体产品的创建类别和创建时机的判断是混和在一起的,这点在工厂方法中

   C.不能形成静态工厂的继承结构

   D.在工厂方法模式中,对于存在继承等级结构的产品树,产品的创建是通过相应等级结构的工厂创建的。

16、在观察者模式中,表述错误的是(c)

   A.观察者角色的更新是被动的。

   B.被观察者可以通知观察者进行更新

   C.观察者可以改变被观察者的状态,再由被观察者通知所有观察者依据被观察者的状态进行。

   D.以上表述全部错误。

17.对于违反里式代换原则的两个类,可以采用的候选解决方案错误的是:

(d)

   A.创建一个新的抽象类C,作为两个具体类的超类,将A和B共同的行为移动到C中,从而解决A和B行为不完全一致的问题。

   B.将B到A的继承关系改组成委派关系。

   C.区分是“IS-a”还是”Has-a”。

如果是“Is-a”,可以使用继承关系,如果是”Has-a”应该改成委派关系

   D.以上方案错误

18.对象组合的有点表述不当的是(d)

   A.容器类仅能通过被包含对象的接口来对其进行访问。

   B.“黑盒”复用,封装性好,因为被包含对象的内部细节对外是不可见。

   C.通过获取指向其它的具有相同类型的对象引用,

       可以在运行期间动态地定义(对象的)组合

   D.造成极其严重的依赖关系。

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

(d)

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

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

特殊类(子类)则通过附加属性和方法来进行实现的扩展。

   C.破坏了封装性,因为这会将父类的实现细节暴露给子类。

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

20.对于依赖倒转的表述错误的是(e)

   A.依赖于抽象而不依赖于具体,也就是针对接口编程。

   B.依赖倒转的接口并非语法意义上的接口,而是,一个类对其他对象进行调用时,所知道的方法集合。

   C.从选项B的角度论述,一个对象可以有多个接口。

   D.实现了同一接口的对象,可以在运行期间,顺利地进行替换。

而且不必知道所示用的对象是那个实现类的实例。

   E.此题没有正确答案。

21.面向对象的六条基本原则包括:

开闭原则,里式代换原则,合成聚合原则以及

       (依赖倒转),(迪米特法则),(单一原则),(接口隔离?

)。

22.在存在继承关系的情况下,方法向(超类)方向集中,而数据向(子类)方向集中。

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

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

24.设计模式的基本要素有(名字),(意图),(问题),(解决方案),(参与者与协作者),(实现),(一般性结构)。

25.创立型模式的根本意图是要把(对象的创建)和(使用分离)的责任进行分离,从而降低系统的(耦合度)。

26.工厂模式分为(简单工厂),(工厂方法),(抽象工厂)三种类型

27.门面模式是(迪米特)法则的典型运用

28.MVC模型的基本工作原理是基于(观察者)模式,实现是基于(命令)模式

设计模式部分(30分)Java班

(1)以下是模式的基本要素的是。

ABCD

A)名称B)意图

C)解决方案D)参与者和协作者

(2)常用的描述设计模式的格式有。

ABCD

A)意图

B)动机

C)适用性

D)结构

(3)以下哪些问题通过应用设计模式能够解决。

AD

A)指定对象的接口

B)排除软件BUG

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

D)设计应支持变化

(4)面向对象系统中功能复用的最常用技术是。

AB

A)类继承

B)对象组合

C)使用抽象类

D)使用实现类

(5)常用的基本设计模式可分为。

A

A)创建型、结构型和行为型

B)对象型、结构型和行为型

C)过程型、结构型和行为型

D)抽象型、接口型和实现型

(6)以下关于创建型模式说法正确的是。

A

A)创建型模式关注的是对象的创建

B)创建型模式关注的是功能的实现

C)创建型模式关注的是组织类和对象的常用方法

D)创建型模式关注的是对象间的协作

(7)以下属于创建型模式的是。

AC

A)抽象工厂(AbstractFactory)模式

B)合成(Composite)模式

C)单例(Singleton)模式

D)桥接(Bridge)模式

(8)以下哪个模式是利用一个对象,快速地生成一批对象。

C

A)抽象工厂(AbstractFactory)模式

B)合成(Composite)模式

C)原型(Prototype)模式

D)桥接(Bridge)模式

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

主要体现在。

AD

A)适配器(Adapte)模式

B)合成(Composite)模式

C)原型(Prototype)模式

D)桥接(Bridge)模式

(10)结构型模式中最体现扩展性的几种模式是。

C

A)适配器(Adapte)模式

B)合成(Composite)模式

C)装饰(Decorator)模式

D)桥接(Bridge)模式

(11)行为类模式使用在类间分派行为。

C

A)接口

B)继承机制

C)对象组合

D)委托

(12)以下属于行为对象模式的是。

ABCD

A)模板(TemplateMethod)模式

B)迭代器(Iterator)模式

C)命令(Command)模式

D)观察者(Observer)模式

(13)封装分布于多个类之间的行为的模式是。

C

A)观察者(Observer)模式

B)迭代器(Iterator)模式

C)访问者(Visitor)模式

D)策略(Strategy)模式

(14)Observer(观察者)模式适用于。

C

A)当一个抽象模型存在两个方面,其中一个方面依赖于另一方面,将这二者封装在独立的对象中以使它们可以各自独立地改变和复用。

B)当对一个对象的改变需要同时改变其它对象,而不知道具体有多少对象有待改变时。

C)当一个对象必须通知其它对象,而它又不能假定其它对象是谁。

也就是说你不希望这些对象是紧密耦合的。

D)一个对象结构包含很多类对象,它们有不同的接口,而想对这些对象实施一些依赖于其具体类的操作。

(15)Java的异常处理机制可理解为哪一种行为模式。

C

A)观察者(Observer)模式

B)迭代器(Iterator)模式

C)职责链(ChainofResponsibility)模式

D)策略(Strategy)模式

UML设计模式笔试题答案

1、选择题

a)A

b)A

c)ACD

d)A

e)D

2、填空题

a)applet(嵌入式应用程序)、application(可独立执行的应用程序)

b)java.lang、Object

c)NEW(创建)、RUNNABLE(运行)、BLOCKED(阻塞)、WAITTING[TIME_WAITTING](等待)、TERMINATED(终止)

d)字节码、JVM(JAVA虚拟机)

e)page、config、request、response、out、session、application、exception、pageContext

3、简答题

a)开闭原则

对扩展开放,对修改关闭

b)抽象工厂类图

c)创建用户分配角色

createusertarringidentifiedbypassword;

grantTeachertotarring;

d)Struts2程序的的执行过程

i.用户发出一个请求

ii.请求被提交到一系列的过滤器(Filter),到达FilterDispatcher,FilterDispatcher进行初始化并启用核心Filter

iii.FilterDispatcher询问ActionMapper是否需要调用某个Action来处理这个(request)请求,如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy

iv.ActionProxy通过ConfigurationManager(struts.xml)询问框架的配置文件,找到需要调用的Action类.

v.ActionProxy创建一个ActionInvocation的实例,同时ActionInvocation通过代理模式调用Action。

但在调用之前ActionInvocation会根据配置加载Action相关的所有Interceptor。

vi.一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果

e)MVC中使用的模式两种

(Observer)观察着模式

(Strategy)策略模式

4、程序设计题

a)I/O流

b)Filter写一个可以用于处理请求的组件

设计模式总结性试题

1、设计模式一般用来解决什么样的问题(a)

   A.同一问题的不同表相   B不同问题的同一表相

   C.不同问题的不同表相   D.以上都不是

2、下列属于面向对象基本原则的是(c)

   A.继承 B.封装C.里氏代换 D都不是

3、Open-Close原则的含义是一个软件实体(a)

   A.应当对扩展开放,对修改关闭.

   B.应当对修改开放,对扩展关闭

   C.应当对继承开放,对修改关闭

   D.以上都不对

4、当我们想创建一个具体的对象而又不希望指定具体的类时,可以使用(a)模式。

   A.创建型 B.结构型C行为型D.以上都可以

5、要依赖于抽象,不要依赖于具体。

即针对接口编程,不要针对实现编程,是(d)的表述

   A.开-闭原则

   B.接口隔离原则

   C.里氏代换原则

   D.依赖倒转原则

6、依据设计模式思想,程序开发中应优先使用的是(a)关系实现复用。

   A,委派 B.继承 C创建  D.以上都不对

   复用方式:

继承和组合聚合(组合委派)

7、设计模式的两大主题是(d)

   A.系统的维护与开发      B对象组合与类的继承

   C.系统架构与系统开发    D.系统复用与系统扩展

8、单子模式中,两个基本要点(ab)和单子类自己提供单例

   A.构造函数私有   B.唯一实例

   C.静态工厂方法   D.以上都不对

9、下列模式中,属于行为模式的是(b)

   A.工厂模式  B观察者  C适配器 以上都是

10、“不要和陌生人说话”是(d)原则的通俗表述

   A.接口隔离  B.里氏代换 C.依赖倒转  D.迪米特:

一个对象应对其他对象尽可能少的了解

11、构造者的的退化模式是通过合并(c)角色完成退化的。

   A.抽象产品   B产品   C创建者    D使用者

12、单子(单例,单态)模式类图结构如下:

   下列论述中,关于”0..1”表述的不正确的是(d)

   A.1表示,一个单例类中,最多可以有一个实例.

   B.”0..1”表示单例类中有不多于一个的实例

   C.0表示单例类中可以没有任何实例

   D.0表示单例类可以提供其他非自身的实例

13、对象适配器模式是(a)原则的典型应用。

   A.合成聚合复用原则    B.里式代换原则

   C.依赖倒转原则       D.迪米特法则

14、静态工厂的核心角色是(a)

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

15、下列关于静态工厂与工厂方法表述错误的是:

(a)

   A.两者都满足开闭原则:

静态工厂以ifelse方式创建对象,增加需求的时候会修改源代码

   B.静态工厂对具体产品的创建类别和创建时机的判断是混和在一起的,这点在工厂方法中

   C.不能形成静态工厂的继承结构

   D.在工厂方法模式中,对于存在继承等级结构的产品树,产品的创建是通过相应等级结构的工厂创建的。

16、在观察者模式中,表述错误的是(c)

   A.观察者角色的更新是被动的。

   B.被观察者可以通知观察者进行更新

   C.观察者可以改变被观察者的状态,再由被观察者通知所有观察者依据被观察者的状态进行。

   D.以上表述全部错误。

17.对于违反里式代换原则的两个类,可以采用的候选解决方案错误的是:

(d)

   A.创建一个新的抽象类C,作为两个具体类的超类,将A和B共同的行为移动到C中,从而解决A和B行为不完全一致的问题。

   B.将B到A的继承关系改组成委派关系。

   C.区分是“IS-a”还是”Has-a”。

如果是“Is-a”,可以使用继承关系,如果是”Has-a”应该改成委派关系

   D.以上方案错误

18.对象组合的有点表述不当的是(d)

   A.容器类仅能通过被包含对象的接口来对其进行访问。

   B.“黑盒”复用,封装性好,因为被包含对象的内部细节对外是不可见。

   C.通过获取指向其它的具有相同类型的对象引用,

       可以在运行期间动态地定义(对象的)组合

   D.造成极其严重的依赖关系。

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

(d)

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

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

特殊类(子类)则通过附加属性和方法来进行实现的扩展。

   C.破坏了封装性,因为这会将父类的实现细节暴露给子类。

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

20.对于依赖倒转的表述错误的是(e)

   A.依赖于抽象而不依赖于具体,也就是针对接口编程。

   B.依赖倒转的接口并非语法意义上的接口,而是,一个类对其他对象进行调用时,所知道的方法集合。

   C.从选项B的角度论述,一个对象可以有多个接口。

   D.实现了同一接口的对象,可以在运行期间,顺利地进行替换。

而且不必知道所示用的对象是那个实现类的实例。

   E.此题没有正确答案。

21.面向对象的六条基本原则包括:

开闭原则,里式代换原则,合成聚合原则以及

       (依赖倒转),(迪米特法则),(单一原则),(接口隔离?

)。

22.在存在继承关系的情况下,方法向(超类)方向集中,而数据向(子类)方向集中。

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

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

24.设计模式的基本要素有(名字),(意图),(问题),(解决方案),(参与者与协作者),(实现),(一般性结构)。

25.创立型模式的根本意图是要把(对象的创建)和(使用分离)的责任进行分离,从而降低系统的(耦合度)。

26.工厂模式分为(简单工厂),(工厂方法),(抽象工厂)三种类型

27.门面模式是(迪米特)法则的典型运用

28.MVC模型的基本工作原理是基于(观察者)模式,实现是基于(命令)模式

29.设计模式的思想根源是(开闭)基本原则的宏观运用,本质上是没有任何模式的,

       发现模式的人永远是大师,而死守模式的人,最对只能是一个工匠.

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

当前位置:首页 > 高等教育 > 军事

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

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