2012UML与设计模式 试卷 (A)

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

要求编写一个责任链模式类实现上面的情景,代码书写清晰、完 整、正确。并给出测试类(10分)。 public class Handler { public void handleRequest() { if (successor != null) ………………….. .(1分) { successor.handleRequest(); ………………….. .(1分) } // Write your code here ………………….. .(1分) } public void setSuccessor(Handler successor) ………………….. .(2 分) { this.successor = successor; } public Handler getSuccessor()………………….. .(1分) { return successor; } private Handler successor; } public class ConcreteHandler extends Handler { public void handleRequest()
4、依据设计模式思想,程序开发中应优先使用的是( A )关系实现复 用。 A. 使用 B. 继承 C创建 D. 以上都不对 5、C++中将一个对象赋值给另外一个创建的对象,如下面的代码: (B) A a; A b=a; 一定会使用的函数是 ( )。 A. 析构函数 B. 拷贝构造函数 C. 赋值函数 D. 动态赋值函数 阅卷教 师 二、填空题(本大题20个空,每空1分,共20分) 1、迭代器模式四种角色: 集合 、____具体集合______、_______ 迭代器_____、____具体迭代器_______。 2、面向对象编程的基本特征有: 抽象 、______wk.baidu.com_封装_____、 _______多态_______。 3、UML图中元素之间的基本关系有:_______泛化______、_______关 联______、_____实现_________。 4、命令模式有四种角色 接收者 、______命令_______、______ 具体命令________、____________请求者_____。 5、高内聚是指 模块内代码密切相关 ,低耦合指 模块间 联系少 。 6、C++ 源文件中 函数定义(或声明)默认有效范围是 外部函数(或 者项目内文件) , 变量定义(或声明)默认有效范围是 当前文 件内 。 7、设计模式的两大主题是 系统复用 、_____系统扩展 ________。 阅卷教 师 得 分 三、简单题(本大题共5小题,每题 6分,共 30 得 分
5、 请问什么是抽象工厂模式,抽象工厂模式包含哪些角色、可以应 用在哪些场景? 提供一个创建一系列或者相互依赖对象的接口,而无需指定他们具体 的类。(2分) 抽象产品,具体产品,抽象工厂,具体工厂。(2分) 系统需要为用户提供多个对象,但不希望用户直接用new运算符实例 化这些对象,即希望用户和创建对象的类脱耦;系统需要为用户提供 多个相关的对象,以便用户联合使用它们,但又不希望用户来决定对 象的关联。(2分)
评分细则,除第一个框图外和解释框图外,其他每处错误扣2分。
{ if (getSuccessor() != null) { getSuccessor().handleRequest(); } if (successor != null) { successor.handleRequest(); } // Write your code here ………………….. .(1分) } } public class Client { private Handler handler; public static void main(String[] args) { handler = new ConcreteHandler(); ………………….. .(2分) //write your code here ………………….. .(1分) 4、画出桥接模式的UML类图(10分)。
防灾科技学院
2012 ~ 2013 学年 第一学期期末考试 UML与设计模式 试卷 (A) 答案及评分标准 使用班级0950421、0950422、0950423
题 号 得 分 注意事项: 1、 考试形式闭卷 2、 考试时间长度120分钟 阅卷教 师 一、单选题(本大题共5小题,每题 2分,共 10 分 ) 1、设计模式的基本要素包括:名称、问题、效果和 (C )。 A. 框架 B. 代码 C. 方案 D. 就三个要素 2、实现Open-Close原则的关键是 ( A )。 A. 应当对扩展开放,对修改关闭 B. 将系统的所有可能的行为抽象成一个抽象底层,这个抽象底层规 定出所有的具体实现必须提供的方法 C. 应当对继承开放,对修改关闭 D. 以上都不对 3、( B)定义了一种一对多的依赖关系,让多个对象同时监听某一个 主题对象,当主题对象在状态上发生变化时,会通知所有监听对象,让 他们能够自动更新自己。 A. 命令模式 B. 观察者模式 C原型模式 D. 代理模式 得 分 一 二 三 四 总 分 阅 卷 教 师
分。) 1、 请问什么是命令模式,命令模式包含哪些角色、可以应用在哪些 场景? 将一个请求封装为一个对象,从而使用户可用不同的请求对客户进 行参数化;对请求排队或者记录请求日志,以及支持可撤销的操作。 (2分) 接收者、具体命令、请求者、命令。(2分) 程序需要在不同的时刻指定、排列和执行请求;程序需要提供撤销 操作;程序需要支持宏操作;(2 分) 2、 请问什么是适配器模式,适配器模式包含哪些角色、可以应用在 哪些场景? 将一个模式的接口转化成客户希望的另外一个接口,使得原来因为接口 不兼容不能一起工作的哪些类可以一起工作。(2分) 目标、被适配者、适配器。(2分) 一个程序想使用已经存在的类,但该类所实现的接口和当前程序使用的 接口不一致。(2分) 3、 请问什么是组合模式,组合模式包含哪些角色、可以应用在哪些 场景? 将对象组合成树形结构以表示“部分-整体”的层次结构。它使得用 户对单个对象和组合对象的使用具有一致性。(2分) 抽象组件、composite节点、leaf节点。(2分) 当想表示对象的部分-整体层次结构;希望用户用一致的方式处理 个体对象和组合对象。(2分) 4、 请问什么是原型模式,原型模式包含哪些角色、可以应用在哪 些场景? 从一个对象出发得到一个和自己有相同状态的新对象,该模式的关 键是将一个对象定义为原型,并未其提供复制自己的方法。(2 分) 抽象原型,具体原型。(2分) 程序需要从一个对象出发,得到若干个和其状态相同,并能独立变 化状态的对象时;当对象的创建需要独立于它的构造过程和表示 时。(2分)
instance = new SingletonKerriganA(); ………………….. .(2分) } return instance; ………………….. .(2分) } private Singleton() { system.println(" 生成新对象!"); } } public class test { public static void main() { Singleton.getInstance();………………….. .(1分) Singleton.getInstance();………………….. .(1分) } }
} //Adapter public class Adapter extends Adaptee implements Target ………………….. .(2分) { public void provide2_5() { this.provide3_5(); } } //Client public class CellPhoneClient ………………….. .(2分) { public static void main(String[] args) { Target target = new Adapter(); //该手机只支持2.5接口的耳机 target.provide2_5(); ………………….. .(2分) } } 评分标准: 1处错误扣2分,其他语法错误扣1分。 2、编写一个类,实现单例(单件)模式,要求场景自拟,并在测 试类中尝试连续两次生成单例模式类的对象,试着判断这两个对象是否 是一个对象(10分)。 class Singleton { /* 单例对象实例 */ private static Singleton instance = null; ………………….. .(2分) public static getInstance() { if (instance == null) { ………………….. .(2分)
阅卷教 师 得 分 四、程序设计题(本大题共4个小题,每个题目10共 40分。) 1、大家生活中可能碰到的一个问题是你的手机自带的耳机是2.5接口 的,不幸的是有一天你的耳机坏了,但现在市面上根本就找不到2.5的 耳机了(基本上是3.5接口了)老板告诉你:“我给你一个适配器”这 个问题不就解决了嘛。请设计并编写一个适配器模式程序块解决上面的 问题,要求代码书写清晰、完整、正确,并给出测试程序代码(10 分)。 public interface Target …………………..(2分) { public void provide2_5(); } //Adaptee public class Adaptee ………………….. .(2分) { public void provide3_5() { System.out.println("我是一个3.5的接口哦"); }
3、击鼓传花是一种热闹而又紧张的饮酒游戏。在酒宴上宾客依次坐定
位置,由一人击鼓,击鼓的地方与传花的地方是分开的,以示公正。开 始击鼓时,花束就开始依次传递,鼓声一落,如果花束在某人手中,则 该人就得饮酒。 比如说,贾母、贾赦、贾政、贾宝玉和贾环是五个参加击鼓传花游 戏的传花者,他们组成一个环链。击鼓者将花传给贾母,开始传花游 戏。花由贾母传给贾赦,由贾赦传给贾政,由贾政传给贾宝玉,又贾宝 玉传给贾环,由贾环传回给贾母,如此往复,如下图所示。当鼓声停止 时,手中有花的人就得执行酒令(10分)
相关文档
最新文档