东北大学软件设计模式A卷Word格式文档下载.docx
- 文档编号:14234146
- 上传时间:2022-10-20
- 格式:DOCX
- 页数:10
- 大小:20.58KB
东北大学软件设计模式A卷Word格式文档下载.docx
《东北大学软件设计模式A卷Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《东北大学软件设计模式A卷Word格式文档下载.docx(10页珍藏版)》请在冰豆网上搜索。
一、单选题(共40分,每题2分)
1.常用的基本设计模式可分为(A)
A.创建型、结构型和行为型B.对象型、结构型和行为型
C.过程型、结构型和行为型D.抽象型、接口型和实现型
2.对以下开闭原则的描述错误的是(A)
A.开闭原则与“对可变性的封装原则”没有相似性
B.找到个系统的可变元素,将它封装起来,叫开闭原则
C.对修改关闭,是其原则之一
D.从抽象层导出一个或多个新具体类可以改变系统的行为,是其原则之一
3.“不要和陌生人说话”是(D)原则的通俗表述。
A.接口隔离B.里氏替换C.依赖倒置D.迪米特
4.当创建一个具体的对象而又不希望指定具体的类时,可以使用(D)
A.结构型B.创建型C.行为型D.以上都可以
5.以下(C)是利用一个对象,快速地生成一批对象。
A.抽象工厂(AbstractFactory)模式B.原型(Prototype)模式
C.合成(Composite)模式D.桥接(Bridge)模式
6.以下(B)用来描述建造者(Builder)。
A.定义一个用于创建对象的接口,让子类决定实例化哪一个类
B.将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示
C.保证一个类仅有一个实例,并提供→个访问它的全周访问点
D.运用共享技术有效地支持大量细粒度的对象
7.以下(C)用来描述工厂方法(FactoryMethod)模式。
A.提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类
B.表示一个作用于某对象结构中的各元素的操作。
它使用户可以在不改变各元素的类的前提下定义作用于这些元素的新操作
C.定义一个用于创建对象的接口,让子类决定实例化哪一个类。
该模式使一个类的实例化延迟到其子类
D.定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。
本模式使得算法可独立于使用它的客户而变化
8.对象适配器模式是(A)原则的典型应用。
A.将一个类的接口转换成客户希望的另外一个接口,本模式使原本由于接口不兼容而不能一起工作的那些类可以一起工作。
B.定义一个用于创建对象的接口,让子类决定实例化哪一个类
C.表示一个作用于某对象结构中的各元素的操作,它使用户可以在不改变各元素的类的前提下定义作用于这些元素的新操作
D.将一个请求封装为一个对象,从而使用户可用不同的请求对客户进行参数化;
对请求排队或记录请求日志,以及支持可撤销的操作
9.关于模式适用性,以下(D)不适合使用Flyweight(享元)模式。
A.一个应用程序使用了大量的对象
B.完全由于使用大量的对象,造成很大的存储开销
C.对象的大多数状态都可变为外部状态
D.用户想使用一个已经存在的类,而它的接口不符合用户的需求
10.如果有一个2MB的文本(英文字母),为了对其中的字母进行分类和计数,若为文本中的每个字母都定义一个对象显然不合实际,对与该问题最好可使用的模式是(A)。
A.装饰(Decorator)模式B.享元(Flyweight)模式
C.合成(Composite)模式D.命令(Command)模式
11.关于模式适用性,以下(B)适合使用组合(Composite)模式。
A.用户想使用一个已经存在的类,而它的接口不符合用户的需求
B.当一个类的实例只能有几个不同状态组合中的一种时
C.用户想表示对象的部分-整体层次结构
D.一个对象的行为取决于它的状态,并且它必须在运行时根据状态改变它的行为
12.以下意图(B)可用来描述命令(Command)。
A.将一个请求封装为一个对象,从而使用户可用不同的请求对客户进行参数化;
B.定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换,本模式使得算法可独立于使用它的客户而变化
C.为其他对象提供一种代理以控制对这个对象的访问
D.保证一个类仅有一个实例,并提供一个访问它的全局访问点
13.以下不属于行为型模式的是(B)。
A.命令(Command)B.策略(Strategy)C.备忘录(Memento)D.桥接(Bridge)
14.关于模式适用性,以下(B)不适合使用模板方法(TemplateMethod)模式。
A.一次性实现-个算法的不变的部分,并将可变的行为留给子类来实现
B.当对一个对象的改变需要同时改变其他对象,而不知道具体有多少对象有待改变
C.各子类中公共的行为应被提取出来并集中到一个公共父类中以避免代码重复。
首先识别现有代码中的不同之处,并且将不同之处分离为新的操作。
最后,用一个调用这些新的操作的模板方法来替换这些不同的代码
D.控制子类扩展。
模板方法只在特定点调用“hook”操作,这样就只允许在这些点进行扩展
15.关于模式适用性,(B)不适合使用职责链(ChainofResponsibility)模式。
A.有多个的对象可以处理一个请求,哪个对象处理该请求运行时刻自动确定
B.在需要用比较通用和复杂的对象指针代替简单的指针的时候
C.用户想在不明确指定接收者的情况下,向多个对象中的一个提交一个请求
D.可处理一个请求的对象集合应被动态指定
16.以下意图(B)可用来描述中介者(Mediator)。
A.提供一种方法顺序访问一个聚合对象中各个元素,而又不需暴露该对象的内部表示
B.将抽象部分与它的实现部分分离,使它们都可以独立变化
C.定义一个用于创建对象的接口,让子类决定实例化哪一个类
D.用-个中介对象来封装一系列的对象交互
17.以下意图(B)可用来描述解释器(Interpreter)。
A.将抽象部分与它的实现部分分离,使它们都可以独立变化
B.给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子
C.将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示
D.为其他对象提供一种代理以控制对这个对象的访问
18.以下意图(B)可用来描述访问者(Visitor)。
A.定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对都得到通知并被自动更新
B.表示一个作用于某对象结构中的各元素的操作
C.在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可将该对象恢复到原先保存的状态
D.用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象
19.以下意图(B)可用来描述状态(State)。
A.使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的精合关系
B.提供一种方法顺序访问一个聚合对象中各个元素而又不需暴露该对象的内部表示
C.允许一个对象在其内部状态改变时改变它的行为。
对象看起来似乎修改了它的类
D.在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可将该对象恢复到原先保存的状态
20.设计模式具有的优点(B)。
A.适应需求变化B.程序易于理解
C.减少开发过程中的代码开发工作量D.简化软件系统的设计
二、多选题(共10分,每题2分)
1.以下是模式的基本要素的是(ABCD)。
A.名称B.意图C.解决方案D.参与者和协作者
2.以下属于创建型模式的是(AC)。
A.抽象工厂(AbstractFactory)模式B.合成(Composite)模式
C.单例(Singleton)模式D.桥接(Bridge)模式
3.以下关于结构型模式说法正确的是(ABCD)。
A.结构型模式可以在不破坏类封装性的基础上,实现新的功能
B.结构型模式主要用于创建一组对象
C.结构型模式可以创建一组类的统→访问接口
D.结构型模式可以在不破坏类封装性的基础上,使类可以同不曾估计到的系统进行交互
4.以下属于行为对象模式的是(BCD)。
A.装饰(Decorator)模式B.迭代器(Iterator)模式
C.命令(Command)模式D.中介者(Mediator)模式
5.下面(ACD)是访问者模式的优缺点。
A.访问者模式使得易于增加新的操作B.访问者集中相关的操作而分离无关的操作
C.增加新的ConcreteElment类很困难D.通过类层次进行访问
三、判断题(共10分,每题1分;
请在认为正确的题目后面写T,错误的题目后面写F)
1.设计模式的两大主题是系统复用与系统扩展。
(T)
2.抽象工厂模式提供了一系列相关或相互依赖对象的接口且必须指定他们具体的类。
(F)
3.对象适配器模式是依赖倒转原则的典型应用。
4.Open-Close原则的含义是一个软件实体应当对扩展开放,对修改关闭。
5.Singleton(单例)模式属于结构性模式。
6.常用的设计模式可分为过程型、创建型和结构型。
7.对观察者模式,触发事件的对象——Subject对象不需要知道观察事件的所有对象。
8.通过在问题领域中使用模式,可以用一种不同的方式来看待问题。
9.对象适配器模式是依赖倒转原则的典型应用。
10.TemplateMethod是用以帮助从不同的步骤中抽象出一个通用的过程的模式。
四、名词解释(共15分,每题3分)
1.设计模式
答:
是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。
使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。
2.开闭原则
一个软件实体应当对扩展开放,对修改关闭,即在不修改源代码的基础上扩展一个系统的行为。
3.单一职责原则
一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中。
4.依赖关系
依赖关系是一种使用关系,它是对象之间相合度最弱的一种关联方式,是临时性
的关联。
5.组合关系
组合关系也是关联关系的一种,也表示类之间的整体与部分的关系,但它是一种更强烈的聚合关系,是contains-a关系。
在组合关系中,整体对象可以控制部分对象的生命周期,一旦整体对象不存在,部分对象也将不存在,部分对象不能脱离整体对象而存在。
五、简答题(共15分,每题5分)
1.设计模式一般有哪几个基本要素?
设计模式一般有如下几个基本要素:
模式名称、问题、目的、解决方案、效果、实例代码和相关设计模式,其中的关键元素包括模式名称、问题、解决方案和效果。
2.创建型模式分包括哪几种设计模式,各是什么并简要说明。
⑴单例(Singleton)模式:
某个类只能生成一个实例,该类提供了一个全局访问点供外部获取该实例,其拓展是有限多例模式。
⑵原型(Prototype)模式:
将一个对象作为原型,通过对其进行复制而克隆出多个和原型类似的新实例。
⑶工厂方法(FactoryMethod)模式:
定义一个用于创建产品的接口,由子类决定生产什么产品。
⑷抽象工
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 东北大学 软件设计 模式