设计模式试题仅供参考.docx
《设计模式试题仅供参考.docx》由会员分享,可在线阅读,更多相关《设计模式试题仅供参考.docx(7页珍藏版)》请在冰点文库上搜索。
设计模式试题仅供参考
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)原那么的通俗表述
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.设计模式的思想根源是(开闭)根本原那么的宏观运用,本质上是没有任何模式的,
发现模式的人永远是大师,而死守模式的人,最对只能是一个工匠.
设计模式局部〔30分〕Java班
〔1〕以下是模式的根本要素的是。
ABCD
A〕名称B〕意图C〕解决方案D〕参及者与协作者
〔2〕常用的描述设计模式的格式有。
ABCD
A〕意图B〕动机C〕适用性D〕构造
〔3〕以下哪些问题通过应用设计模式能够解决。
AD
A〕指定对象的接口B〕排除软件BUGC〕确定软件的功能都正确实现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设计模式笔试题答案
一、选择题
a)A
b)A
c)ACD
d)A
e)D
二、填空题
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
三、简答题
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。
e)MVC中使用的模式两种
〔Observer〕观察着模式
〔Strategy〕策略模式
四、程序设计题
a)I/O流
b)Filter写一个可以用于处理请求的组件