设计模式总复习题

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

总复习题

复习参考资料:

1.GoF 设计模式

2.设计模式解析

3.易学设计模式

4.大话设计模式

5.深入浅出设计模式

以参考资料为主,模拟试题1-5中有些题答案在一些附加资料中

模拟试题1

一、选择题(分值20)

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

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

C.不同问题的不同表相

D.以上都不是

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

A.继承

B.封装

C.里氏代换 D都不是

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

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

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

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

D.以上都不对

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

A.创建型

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

5. 要依赖于抽象,不要依赖于具体。即针对接口编程,不要针对实现编程,是( )的表述

A. 开-闭原则

B. 接口隔离原则

C. 里氏代换原则

D. 依赖倒转原则

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

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

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

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

C.系统架构与系统开发

D.系统复用与系统扩展

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

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

C.静态工厂方法

D.以上都不对

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

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

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

A.接口隔离

B.里氏代换

C.依赖倒转

D.迪米特

二、填空题(分值20)

1. 软件体系结构是指一个系统的有目的的设计和规划,这个设计规划既不描

述,也不描述,它只描述系统的及其相互的。

2.一个UML模型只描述了一个系统,它并没告诉我们系统

是。

3.接口是可以在整个模型中反复使用的一组行为,是一个没有而只有

的类。

4.多重性指的是,某个类有个对象可以和另一个类的对象关联。5.当一个类的对象可以充当多种角色时,关联就可能发生。

6.在泛化关系中,可以替代。也就是说,后者出现的地方,前者都可以出现。但是反过来却不成立。

7.最通常的依赖关系是一个类操作的中用到了的定义。8.组成是的聚集,因为聚集中的每个部分体只能属于整体。9.实现的符号和继承的符号有相似之处,两者的唯一差别是实现关系用表示,继承关系用表示。

10. 设计模式中应优先使用而不是。

三、判断题(分值15)

1.适配器模式属于创建型模式()

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

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

4.面向对象语言编程中的异常处理,可以理解为责任链模式()

5.反模式就是反对在软件开发过程中使用设计模式()

四、问答题(分值30)

1.什么是设计模式?设计模式目标是什么?

2.设计模式中一般都遵循的原则有什么?

3.“Gang of Four”针对“创建优秀面向对象设计”建议了哪些策略?

4.面向对象系统中功能复用的两种最常用技术是什么?

5.只根据抽象类中定义的接口来操纵对象有什么好处?

五、应用题(分值15)

公司架构:经理、工程师、技师和后勤人员都是公司的雇员,经理管理工程师、技师和后勤人员。高层经理领导较低级别的经理。典型层次图如下:

可以使用哪种设计模式实现公司的层级关系?并说明为什么?

模拟试题2

一、选择题(分值20)

1. 在观察者模式中,表述错误的是()

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

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

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

行。

D. 以上表述全部错误。

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

A. 创建一个新的抽象类C,作为两个具体类的超类,将A 和B 共同的行为移动到C 中,从

而解决A和B 行为不完全一致的问题。

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

C. 区分是“IS-a”还是”Has-a”。如果是“Is-a”,可以使用继承关系,如果是”Has-a”

应该改成委派关系

D. 以上方案错误

3. 下列模式属于结构型设计模式的是()

A. Composite

B. 享元(Flyweight)模式

C. 单体模式

D. 工厂方法

4. 关于继承表述错误的是:()

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

B. 泛化类(超类)可以显式地捕获那些公共的属性和方法。特殊类(子类)则通过附加属性和方法来进行实现的扩展。

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

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

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

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

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

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

D. 实现了同一接口的对象,可以在运行期间,顺利地进行替换。而且不必知道所用的对象是那个实现类的实例。

E. 此题没有正确答案。

6. 可以使用哪一种设计模式限制类的实例唯一?()

A. 工厂方法

B. 生成器模式

C. 原型模式

D.单体模式

7. Java数据库连接库JDBC用到哪种设计模式()?

A. 生成器

B.工厂方法

C.抽象工厂 D.单体

相关文档
最新文档