欢迎来到天天文库
浏览记录
ID:40661189
大小:1.42 MB
页数:5页
时间:2019-08-05
《2011UML与设计模式 试卷 (B)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、防灾科技学院2011~2012学年第一学期期末考试UML与设计模式试卷(B)使用班级0950411、0950412题号一二三四总分阅卷教师得分注意事项:1、本门课为考查课,考试形式闭卷2、因题量较大,考试过程中注意答题时间阅卷教师得分一、单选题(本大题共5小题,每题2分,共10分)1、设计模式具有的优点()。A.适应需求变化B.程序易于理解C.减少开发过程中的代码开发工作量D.简化软件系统的设计2、设计模式一般用来解决什么样的问题()。A.同一问题的不同表相B不同问题的同一表相C.不同问题的不同表相D.以上都不是3、设计模式的两大主题是()。A.系统的维护与开发B对象组合与类的继承C.系统
2、架构与系统开发D.系统复用与系统扩展第5页共5页4、以下哪些问题通过应用设计模式不能够解决()。A)指定对象的接口B)针对接口编程C)确定软件的功能都正确实现D)设计应支持变化5、依据设计模式思想,程序开发中应优先使用的是()关系实现复用。A.使用 B.继承 C创建 D.以上都不对阅卷教师得分二、填空题(本大题5个小题,每题4分,共20分)1、记录一个设计模式需要四个基本要素:、_____________、______________、_________________。2、所谓开闭原则就是让设计对开放,对_____________关闭。3、方法复用最常用的两种技术是__________
3、____、_________________。4、迭代器模式四种角色:、_____________、______________、_________________。5、高内聚的定义:,低耦合的定义。阅卷教师得分三、简单题(本大题共5小题,每题4分,共20分。)1、请给出代理模式的定义、结构,并概述代理模式的优点和使用场景。2、请给出适配器模式的定义、结构,并概述适配器模式的优点和使用场景。3、请给出装饰模式的定义、结构,并概述装饰模式的优点和使用场景。4、请给出命令模式的定义、结构,并概述命令模式的优点和使用场景。5、请给出桥接模式的定义、结构,并概述桥接模式的优点和使用场景。四、程序设
4、计题(本大题共5个小题,每个题目10共50分。)1、请根据下面的用例图设计相关类图(10分)。第5页共5页2、请设计一个单例模式的类及相应的测试类,要求应用该单例模式类只能产生一个实例对象(10分)。3、请设计一个组合模式类,及相关的测试类(10分)。4、请补充横线出的空缺,以实现深拷贝的prototype模式(每空2分)。classProtoTypeimplementsCloneable//深拷贝的例子{privateString[]names;voidsetName(Stringargs[]){for(inti=0;i5、e(){returnnames;第5页共5页}publicProtoTypeclone()throwsCloneNotSupportedException{ProtoTypeob=null;for(inti=0;i6、]={"经济型","环保型","节能型"};ProtoTypepro1=newCar(args);ProtoTypepro2=(ProtoType)pro1.clone();System.out.println("打印两个对象名字:");System.out.println(pro1);System.out.println(pro2);System.out.println();第5页共5页System.out.println("打印两个对象所属的类:");System.out.println(pro1.getClass());System.out.println(pro2.getClass7、());System.out.println("打印两个对象的属性names数组的名字,已验证是否属性同一个引用:");System.out.println(pro1.getName());System.out.println(pro2.getName());System.out.println((pro1.getName())[1]);System.out.println((pro2.getName())[1]);}}
5、e(){returnnames;第5页共5页}publicProtoTypeclone()throwsCloneNotSupportedException{ProtoTypeob=null;for(inti=0;i6、]={"经济型","环保型","节能型"};ProtoTypepro1=newCar(args);ProtoTypepro2=(ProtoType)pro1.clone();System.out.println("打印两个对象名字:");System.out.println(pro1);System.out.println(pro2);System.out.println();第5页共5页System.out.println("打印两个对象所属的类:");System.out.println(pro1.getClass());System.out.println(pro2.getClass7、());System.out.println("打印两个对象的属性names数组的名字,已验证是否属性同一个引用:");System.out.println(pro1.getName());System.out.println(pro2.getName());System.out.println((pro1.getName())[1]);System.out.println((pro2.getName())[1]);}}
6、]={"经济型","环保型","节能型"};ProtoTypepro1=newCar(args);ProtoTypepro2=(ProtoType)pro1.clone();System.out.println("打印两个对象名字:");System.out.println(pro1);System.out.println(pro2);System.out.println();第5页共5页System.out.println("打印两个对象所属的类:");System.out.println(pro1.getClass());System.out.println(pro2.getClass
7、());System.out.println("打印两个对象的属性names数组的名字,已验证是否属性同一个引用:");System.out.println(pro1.getName());System.out.println(pro2.getName());System.out.println((pro1.getName())[1]);System.out.println((pro2.getName())[1]);}}
此文档下载收益归作者所有