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