(东北大学)(离线)软件设计模式X》22年春秋考核作业(附答案)

上传人:我认****】哈 文档编号:301830251 上传时间:2022-05-31 格式:DOC 页数:14 大小:131.50KB
返回 下载 相关 举报
(东北大学)(离线)软件设计模式X》22年春秋考核作业(附答案)_第1页
第1页 / 共14页
(东北大学)(离线)软件设计模式X》22年春秋考核作业(附答案)_第2页
第2页 / 共14页
(东北大学)(离线)软件设计模式X》22年春秋考核作业(附答案)_第3页
第3页 / 共14页
(东北大学)(离线)软件设计模式X》22年春秋考核作业(附答案)_第4页
第4页 / 共14页
(东北大学)(离线)软件设计模式X》22年春秋考核作业(附答案)_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《(东北大学)(离线)软件设计模式X》22年春秋考核作业(附答案)》由会员分享,可在线阅读,更多相关《(东北大学)(离线)软件设计模式X》22年春秋考核作业(附答案)(14页珍藏版)》请在金锄头文库上搜索。

1、学习中心: 院校学号: 姓名 东 北 大 学 继 续 教 育 学 院 软件设计模式 X 试 卷(作业考核 线上2) A 卷(共 7 页) 总分题号一二三四五六七八九十得分-完整答案附后-一、单选题(共40分,每题2分)1. 常用的基本设计模式可分为()A.创建型、结构型和行为型 B. 对象型、结构型和行为型C.过程型、结构型和行为型 D. 抽象型、接口型和实现型2. 对以下开闭原则的描述错误的是()A.开闭原则与“对可变性的封装原则”没有相似性 B.找到个系统的可变元素,将它封装起来,叫开闭原则C.对修改关闭,是其原则之一D.从抽象层导出一个或多个新具体类可以改变系统的行为,是其原则之一3.

2、“不要和陌生人说话”是()原则的通俗表述。A. 接口隔离 B. 里氏替换 C. 依赖倒置 D. 迪米特4. 当创建一个具体的对象而又不希望指定具体的类时,可以使用()A. 结构型 B. 创建型 C. 行为型 D.以上都可以5. 以下( )是利用一个对象,快速地生成一批对象。A. 抽象工厂(Abstract Factory)模式 B. 原型(Prototype)模式C. 合成(Composite)模式 D. 桥接(Bridge)模式6. 以下( )用来描述建造者( Builder )。A. 定义一个用于创建对象的接口,让子类决定实例化哪一个类B. 将一个复杂对象的构建与它的表示分离,使得同样的构

3、建过程可以创建不同的表示C. 保证一个类仅有一个实例,并提供个访问它的全周访问点D. 运用共享技术有效地支持大量细粒度的对象7. 以下( )用来描述工厂方法(Factory Method)模式。A. 提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类B. 表示一个作用于某对象结构中的各元素的操作。它使用户可以在不改变各元素的类的前提下定义作用于这些元素的新操作C. 定义一个用于创建对象的接口,让子类决定实例化哪一个类。该模式使一个类的实例化延迟到其子类D. 定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化8. 对象适配器模式

4、是( )原则的典型应用。A. 将一个类的接口转换成客户希望的另外一个接口,本模式使原本由于接口不兼容而不能一起工作的那些类可以一起工作。B. 定义一个用于创建对象的接口,让子类决定实例化哪一个类C. 表示一个作用于某对象结构中的各元素的操作,它使用户可以在不改变各元素的类的前提下定义作用于这些元素的新操作D. 将一个请求封装为一个对象,从而使用户可用不同的请求对客户进行参数化; 对请求排队或记录请求日志,以及支持可撤销的操作9. 关于模式适用性,以下( )不适合使用Flyweight(享元)模式。A. 一个应用程序使用了大量的对象B. 完全由于使用大量的对象, 造成很大的存储开销C. 对象的大

5、多数状态都可变为外部状态D. 用户想使用一个已经存在的类,而它的接口不符合用户的需求10. 如果有一个2MB 的文本(英文字母),为了对其中的字母进行分类和计数,若为文本中的每个字母都定义一个对象显然不合实际,对与该问题最好可使用的模式是( )。A. 装饰(Decorator)模式 B. 享元( Flyweight )模式 C. 合成(Composite)模式 D.命令(Command)模式11. 关于模式适用性, 以下( )适合使用组合(Composite) 模式。A. 用户想使用一个已经存在的类, 而它的接口不符合用户的需求B. 当一个类的实例只能有几个不同状态组合中的一种时C. 用户想表

6、示对象的部分整体层次结构D. 一个对象的行为取决于它的状态, 并且它必须在运行时根据状态改变它的行为12. 以下意图( )可用来描述命令(Command)。A. 将一个请求封装为一个对象,从而使用户可用不同的请求对客户进行参数化; 对请求排队或记录请求日志,以及支持可撤销的操作B.定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换, 本模式使得算法可独立于使用它的客户而变化C. 为其他对象提供一种代理以控制对这个对象的访问D. 保证一个类仅有一个实例,并提供一个访问它的全局访问点13. 以下不属于行为型模式的是( )。A.命令(Command ) B.策略(Strategy) C.

7、 备忘录(Memento ) D.桥接(Bridge )14. 关于模式适用性, 以下( )不适合使用模板方法(Template Method) 模式。A. 一次性实现个算法的不变的部分,并将可变的行为留给子类来实现B. 当对一个对象的改变需要同时改变其他对象,而不知道具体有多少对象有待改变C. 各子类中公共的行为应被提取出来并集中到一个公共父类中以避免代码重复。首先识别现有代码中的不同之处,并且将不同之处分离为新的操作。最后,用一个调用这些新的操作的模板方法来替换这些不同的代码D.控制子类扩展。模板方法只在特定点调用“hook”操作,这样就只允许在这些点进行扩展15. 关于模式适用性,( )

8、不适合使用职责链(Chain of Responsibility)模式。A. 有多个的对象可以处理一个请求,哪个对象处理该请求运行时刻自动确定B. 在需要用比较通用和复杂的对象指针代替简单的指针的时候C. 用户想在不明确指定接收者的情况下,向多个对象中的一个提交一个请求D. 可处理一个请求的对象集合应被动态指定16. 以下意图( )可用来描述中介者(Mediator) 。A. 提供一种方法顺序访问一个聚合对象中各个元素,而又不需暴露该对象的内部表示B. 将抽象部分与它的实现部分分离, 使它们都可以独立变化C. 定义一个用于创建对象的接口,让子类决定实例化哪一个类D. 用个中介对象来封装一系列的

9、对象交互17. 以下意图( )可用来描述解释器(Interpreter)。A. 将抽象部分与它的实现部分分离,使它们都可以独立变化B. 给定一个语言, 定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子C. 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示D. 为其他对象提供一种代理以控制对这个对象的访问18. 以下意图( )可用来描述访问者(Visitor )。A. 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对都得到通知并被自动更新B. 表示一个作用于某对象结构中的各元素的操作C. 在不破坏封装性的前提下

10、,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可将该对象恢复到原先保存的状态D. 用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象19. 以下意图( )可用来描述状态( State )。A. 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的精合关系B. 提供一种方法顺序访问一个聚合对象中各个元素而又不需暴露该对象的内部表示C. 允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类D. 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可将该对象恢复到原先保存的状态20. 设计模式具有的优点()。

11、A. 适应需求变化 B. 程序易于理解 C.减少开发过程中的代码开发工作量 D. 简化软件系统的设计二、多选题(共10分,每题2分)1. 以下是模式的基本要素的是( )。A. 名称 B. 意图 C. 解决方案 D. 参与者和协作者2. 以下属于创建型模式的是( )。A.抽象工厂(Ab stract Factory)模式 B.合成(Composite) 模式C. 单例(Singleton)模式 D. 桥接(Bridge)模式3. 以下关于结构型模式说法正确的是( )。 A. 结构型模式可以在不破坏类封装性的基础上, 实现新的功能B. 结构型模式主要用于创建一组对象C. 结构型模式可以创建一组类的

12、统访问接口D. 结构型模式可以在不破坏类封装性的基础上, 使类可以同不曾估计到的系统进行交互4. 以下属于行为对象模式的是( )。A. 装饰(Decorator)模式 B. 迭代器(Iterator)模式 C. 命令(Command)模式 D. 中介者(Mediator)模式5. 下面( )是访问者模式的优缺点。A. 访问者模式使得易于增加新的操作 B. 访问者集中相关的操作而分离无关的操作C. 增加新的ConcreteElment 类很困难 D. 通过类层次进行访问三、判断题(共10分,每题1分;请在认为正确的题目后面写T,错误的题目后面写F)1. 设计模式的两大主题是系统复用与系统扩展。(

13、 )2. 抽象工厂模式提供了一系列相关或相互依赖对象的接口且必须指定他们具体的类。( )3. 对象适配器模式是依赖倒转原则的典型应用。( )4. Open-Close原则的含义是一个软件实体应当对扩展开放,对修改关闭。( )5. Singleton(单例)模式属于结构性模式。( )6. 常用的设计模式可分为过程型、创建型和结构型。( )7. 对观察者模式,触发事件的对象Subject对象不需要知道观察事件的所有对象。( )8. 通过在问题领域中使用模式,可以用一种不同的方式来看待问题。( )9. 对象适配器模式是依赖倒转原则的典型应用。( )10. Template Method是用以帮助从不

14、同的步骤中抽象出一个通用的过程的模式。( )四、名词解释(共15分,每题3分)1. 设计模式2. 开闭原则3.单一职责原则4.依赖关系5.组合关系五、简答题(共15分,每题5分)1. 设计模式一般有哪几个基本要素?2. 创建型模式分包括哪几种设计模式,各是什么并简要说明。3. 说明访问者模式的定义与主要优缺点。六、综合题(共10分)当“人民币汇率” 升值时, 进口公司的进口产品成本降低且利润率提升,出口公司的出口产品收入降低且利润率降低; 当“人民币汇率” 贬值时,进口公司的进口产品成本提升且利润率降低, 出口公司的出口产品收入提升且利润率提升。利用观察者模式设计一个程序, 分析“人民币汇率”

15、的升值或贬值对进口公司的进口产品成本或出口公司的出口产品收入以及公司的利润率的影响。提示:这里的汇率(Rate) 类是抽象目标类,它包含了保存观察者(Company ) 的List 和增加/删除观察者的方法, 以及有关汇率改变的抽象方法change(int number); 而人民币汇率(RMBrate)类是具体目标,它实现了父类的change(int number)方法,即当人民币汇率发生改变时通过相关公司; 公司(Company)类是抽象观察者, 它定义了一个有关汇率反应的抽象方法respons巳(int number); 进口公司( ImportCompany )类和出口公司( E xportCompany )类是具体观

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 习题/试题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号