设计模式考试复习题含答案
- 格式:doc
- 大小:340.60 KB
- 文档页数:62
)
含答案(设计模式考试复习题.
A.设计模式一般用来解决什么样的问题:
一、1.
同一问题的不同表相里氏代 C.2. 下列属
于面向对象基本原则的是:
换A.原则的含义是一个软件实体:3.
Open-Close.
应当对扩展开放,对修改关闭当我们想创建
一个具体的对象而又不希望指4.
A.)模式。创建型定具体的类时,使用
(A要依赖于抽象不要依赖于具体。即针对
接口5.
D)依赖倒转原则编程不要针对实现编程:
(程序开发中应优先使用依据设计模式思
想,6.
委派关系实现复用。的是( A )A,
系统复用( D ) D.7. 设计模式的两大主
题是 与系统扩展和单体类自(AB),两个基
本要点8. 单体模式中 B.唯一实例己
提供单例A .构造函数私有( B ) B属于
行为模式的是,9. 下列模式中 观察者原则
的通是 ( D )10. “不要和陌生人说话”
迪米特 D.俗表述软件体系结构是指一个
系统的有目的的设计1.
也不, 活动 这个设计规划既不描述和规
划,
组它只描述系统的 , 描述 系统怎样
开发 。交互协作 成元素 及其相互的
要做什.一个2UML模型只描述了一个系统
。怎么做 ,它并没告诉我们系统是么
.接口是可以在整个模型中反复使用的一组
行3 的类。方法属性为,是一个没有
而只有
个对象可 .多重性指的是,某个类有多
4 对象关联。以和另一个类
自.当一个类的对象可以充当多种角色时,
5 身 关联就可能发生。父类。后前可以
替代 .在泛化关系中,子类6
者出现的可以相同地方。反过来却不成立。
形构.最通常的依赖关系是一个类操作的
7 中用到了 的定义。 另一个类因为聚
集中的每. 的聚集,组成是 强类型8 个
部分体只能属于整体。 一个
.实现的符号和继承的符号有相似之处,两
者9表示,继承关 虚线的唯一差别是实
现关系用 表示。实线系用
对象组合10. 设计模式中应优先
使用 。 而不是类继承
) F 配器模式属于创建型模式结构型(适
1.
2. 在设计模式中,“效果”只是指“原因和
结果”( T )
3. 设计模式使代码编制不能真正工程化
( T )
4. 面向对象语言编程中的异常处理,可以
理解为责任链模式(T )
5. 反模式就是反对在软件开发过程中使用
设计模式分析:反模式用来解决问题的带有
共性的不良方法(F )
1. 什么是设计模式?设计模式目标是什
么?
答:设计模式是一套被反复使用、多数人知
晓的、经过分类编目的、代码设计经验的总
结。使用设计模式是为了可重用代码、让代
码更容易被他人理解,保证代码可靠性。
2. 设计模式中一般都遵循的原则有什么?
答:开闭原则、根据场景进行设计原则、优
先组合原则、包容变化原则
3. “Gang of Four”针对“创建优秀面向
对象设计”建议了哪些策略?
答:针对接口编程、优先使用对象组合而不
是类继承,找到并封装变化点。
4. 面向对象系统中功能复用的两种最常用
技术 是什么?
答:类继承和对象组合,类继承允许你根据
其他类的实现来定义一个类的实现。父类的
内部细节对子类可见。类继承是在编译时刻
静态定
义的,且可直接使用,类继承可以较方便地
改变被复用的实现。对象组合是类继承之外
的另一种复用选择。新的更复杂的功能可以
通过组装或组合对象来获得。对象组合要求
被组合的对象具有良好定义的接口。
5. 只根据抽象类中定义的接口来操纵对象
有什么好处?
答:1) 客户无须知道他们使用对象的特定
类型,只须对象有客户所期望的接口。
2) 客户无须知道他们使用的对象是用什
么类来实现的,他们只须知道定义接口的抽
象类。
五、应用题(分值15)
公司架构:经理、工程师、技师和后勤人员
都是公司的雇员,经理管理工程师、技师和
后勤人员。高层经理领导较低级别的经理。
典型层次图如下:可以使用哪种设计模式实
现公司的层级关系?并说明为什么?
组合模式,第一,其公司关系架构为树形结
构; 整体关系(自己扩展)-第二,其表示
了部分.
1. 在观察者模式中,表述错误的是( C )
C. 观察者可以改变被观察者的状态,再由
被观察者通知所有观察者依据被观察者的
状态进行。
对于违反里式代换原则的两个类,可以采用
2.
的候选解决方案错误的是:( D )D. 以上
方案错误
3. 下列模式属于结构型设计模式的是
( AB )
A. Composite B. 享元(Flyweight)模式
4. 关于继承表述错误的是:( D )D. 继承
本质上是“白盒复用”,对父类的修改,不
会影响到子类。
5. 对于依赖倒转的表述错误的是(C)C. 从
选项B的角度论述,一个对象可以有多个接
口。
6. 可以使用哪一种设计模式限制类的实例
唯一?( D )D.单体模式
7. Java数据库连接库JDBC用到哪种设计模
式( B )?B.工厂方法
8. 关于运用GOF工厂方法的效果
Consequences,说法不正确的是(C)有利
于产品的一致性
8. 在应用程序中可用哪些设计模式分离
出算法?( B )B. 策略模式
9. 工厂方法也称为( D )D. 虚构造
器
10. 可以使用哪种设计模式将抽象和实现
解耦,使得抽象和实现可以独自变化?( B )
桥接模 式
1. 面向对象的七条基本原则包括:开闭原
则,里式代换原则,合成聚合原则以及(迪
米特法则 ),( 依赖倒转 ),( 单一原
则 ),( 接口隔离 )。
2. 在存在继承关系的情况下,方法向( 超
类 )方向集中,而数据向( 子类 )方向
集中。
3. 适配器模式,分为类的适配器和对象的
适配器两种实现。其中类的适配器采用的是
( 继承 )关系,而对象适配器采用的是
(组合聚合)关系。
4. 设计模式的四个基本要素是(名字 ),
(意图 ),(问题 )和( 解决方案 )。
5. .创建型模式的根本意图是要把( 对象
的创建 )和( 使用分离 )的责任进行
分离,从而降低系统的( 耦合度 )。
6. 工厂模式分为(简单工厂 ),( 工厂方
法 ),( 抽象工厂 )三种类型。
7. 门面模式是( 迪米特 )法则的典型运
用
观察 ( 模型的基本工作原理是基于8. MVC.
者 )模式,实现是基于( 命令 )模式
9. 设计模式的思想根源是(开闭 )基本原
则的
宏观运用,本质上是没有任何模式的,发现
模式的人永远是大师,而死守模式的人,最
对只能是一个工匠.
1. 在MVC模型中M、V、C分别指什么?简
述它们之间的关系?
M: 模型(Model), V:视图(View) C:控制
Controller)。
MVC模式的目的就是实现Web系统的职能分
工。 Model层实现系统中的业务逻辑,通常
可以用JavaBean或EJB来实现。 View层用
于与用户的交互,通常用JSP来实现。
Controller层是Model与View之间沟通的
桥梁,它可以分派用户的请求并选择恰当的
视图以用于显示,同时它也可以解释用户的
输入并将它们映射为模型层可执行的操作。
2. 什么是开闭原则?
软件实体应当对扩展开放,对修改关闭,软
件系统中包含的各种组件,例如模块
(Modules)、)等,应该Functions)以及功
能(Classes类(.
在不修改现有代码的基础上,引入新功能。
开闭原则中“开”,是指对于组件功能的扩
展是开放的,是允许对其进行功能扩展的;
开闭原则中
“闭”,是指对于原有代码的修改是封闭的,
即不应该修改原有的代码。
3.设计数据库的系统日志,要考虑使用哪些
设计模式?
答:命令模式,备忘录模式,外观模式
4. 使用工厂模式的主要原因是什么?
工厂模式定义:提供创建对象的接口. 因为
工厂模式就相当于创建实例对象的new,我
们经常要根据类Class生成实例对象,如A
a=new A() 工厂模式也是用来创建实例对象
的,所以以后new时就要多个心眼,是否可
以考虑使用工厂模式,虽然这样做,可能多
做一些工作,但会给你系统带来更大的可扩
展性和尽量少的修改量。
5. 在面向对象设计中,《编译原理》的有限
状态机可以什么样解决方案完成?
猫大叫一声,所有的老鼠都开始逃跑,主人
被惊醒问:(1)设计可能用到什么设计模式?
(2)画出其类图。
观察者模式
分析:要有联动性,老鼠和主人的行为是被动的;
考虑可扩展性,猫的叫声可能引起其他联动效应。