设计模式总复习题
- 格式:doc
- 大小:76.50 KB
- 文档页数:15
总复习题
复习参考资料:
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.单体