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