[13-14(2)]11(1)班《Java设计模式》期末A卷(答案)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

《Java设计模式》期末考试试卷(A卷)第1页共8页2013-2014学年第二学期韶关学院计算机科学学院《Java设计模式》期末考试A卷(答案)年级:11专业:计算机科学技术班级:1学号:姓名:题号一二三四五总分签名得分注:1、共120分钟,总分100分;2、此试卷适用班级:计算机本科专业。一得分阅卷教师一、单选择题:(30分,每小题2分)1.关于模式适用性,在以下情况不适合使用CHAINOFRESPONSIBILITY(职责链)模式?(B)A.有多个的对象可以处理一个请求,哪个对象处理该请求运行时刻自动确定。B.在需要用比较通用和复杂的对象指针代替简单的指针的时候。C.你想在不明确指定接收者的情况下,向多个对象中的一个提交一个请求。D.可处理一个请求的对象集合应被动态指定。2.当我们想创建一个具体的对象而又不希望指定具体的类时,可以使用(B)模式。A.结构型B.创建型C.行为型D.以上都可以3.以下意图那个是用来描述ADAPTER(适配器)?(A)A.将一个类的接口转换成客户希望的另外一个接口,本模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。B.定义一个用于创建对象的接口,让子类决定实例化哪一个类。C.表示一个作用于某对象结构中的各元素的操作,它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。D.将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作。装订线《Java设计模式》期末考试试卷(A卷)第2页共8页4.以下意图那个是用来描述COMMAND(命令)?(A)A.将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作。B.定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换,本模式使得算法可独立于使用它的客户而变化。C.为其他对象提供一种代理以控制对这个对象的访问。D.保证一个类仅有一个实例,并提供一个访问它的全局访问点。5.以下关于创建型模式说法正确的是(A)A.创建型模式关注的是对象的创建B.创建型模式关注的是功能的实现C.创建型模式关注的是组织类和对象的常用方法D.创建型模式关注的是对象间的协作6.以下意图那个是用来描述DECORATOR(装饰)?(D)A.运用共享技术有效地支持大量细粒度的对象。B.用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。C.将抽象部分与它的实现部分分离,使它们都可以独立地变化。D.动态地给一个对象添加一些额外的职责。7.要依赖于抽象,不要依赖于具体,即针对接口编程,不要针对实现编程,是(D)的表述。A.开-闭原则B.接口隔离原则C.里氏代换原则D.依赖倒转原则8.以下意图那个是用来描述FACADE(外观)?(A)A.为子系统中的一组接口提供一个一致的界面,本模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。B.定义一个用于创建对象的接口,让子类决定实例化哪一个类。C.保证一个类仅有一个实例,并提供一个访问它的全局访问点。D.在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。9.“不要和陌生人说话”是(D)原则的通俗表述。A.接口隔离B.里氏代换C.依赖倒转D.迪米特《Java设计模式》期末考试试卷(A卷)第3页共8页10.Open-Close原则的含义是一个软件实体(A)A.应当对扩展开放,对修改关闭.B.应当对修改开放,对扩展关闭C.应当对继承开放,对修改关闭D.以上都不对11.以下意图那个是用来描述PROXY(代理)?(C)A.用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。B.运用共享技术有效地支持大量细粒度的对象。C.为其他对象提供一种代理以控制对这个对象的访问。D.将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。12.以下不属于结构型模式是?(D)A.COMPOSITE(组合)B.ADAPTER(适配器)C.FLYWEIGHT(享元)D.SINGLETON(单例)13.以下意图那个是用来描述FLYWEIGHT(享元)?(B)A.将抽象部分与它的实现部分分离,使它们都可以独立地变化。B.运用共享技术有效地支持大量细粒度的对象。C.动态地给一个对象添加一些额外的职责。D.用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。14.以下对开-闭原则的一些描述错误的是?(A)A.开-闭原则与对可变性的封装原则没有相似性B.找到一个系统的可变元素,将它封装起来,叫开-闭原则C.对修改关闭:是其原则之一D.从抽象层导出一个或多个新的具体类可以改变系统的行为,是其原则之一15.常用的基本设计模式可分为(A)A.创建型、结构型和行为型B.对象型、结构型和行为型C.过程型、结构型和行为型D.抽象型、接口型和实现型装订线《Java设计模式》期末考试试卷(A卷)第4页共8页二得分阅卷教师二、多选择题:(20分,每小题2分)1.当应用FactoryMethod模式时要考虑下面哪些问题?(A,B,C,D)A.主要有两种不同的情况B.参数化工厂方法C.特定语言的变化和问题D.使用模板以避免创建子类2.以下属于行为对象模式的是(B,C,D)A.装饰(Decorator)模式B.迭代器(Iterator)模式C.命令(Command)模式D.中介者(Mediator)模式3.以下意图那些是用来描述MEDIATOR(中介者)?(D)A.提供一种方法顺序访问一个聚合对象中各个元素,而又不需暴露该对象的内部表示。B.将抽象部分与它的实现部分分离,使它们都可以独立地变化。C.定义一个用于创建对象的接口,让子类决定实例化哪一个类。D.用一个中介对象来封装一系列的对象交互。4.在不破坏类封装性的基础上,使得类可以同不曾估计到的系统进行交互。主要体现在(A,D)A.适配器(Adapte)模式B.合成(Composite)模式C.原型(Prototype)模式D.桥接(Bridge)模式5.中介者模式有以下那些优点?(A,B,D)A.简化了对象之间的交互B.简化了同事类的设计和实现C.封装了转换规则D.减少了子类生成6.以下属于Singleton(单例)模式的优点是?(A,B,C,D)A.对唯一实例的受控访问B.允许对操作和表示的精化C.允许可变数目的实例D.比类操作更灵活7.面向对象系统中功能复用的最常用技术是(A,B)。A.类继承B.对象组合C.使用抽象类D.使用实现类《Java设计模式》期末考试试卷(A卷)第5页共8页8.Decorator(装饰)模式主要两个优点有以下那些?(A,B)A.比静态继承更灵活B.避免在层次结构高层的类有太多的特征C.有许多小对象,很容易对它们进行定制,但是很难学习这些系统,排错也很困难。D.Decorator与它的Component不一样,Decorator是一个透明的包装。9.结构型模式中最体现扩展性的几种模式是(B,C)A.适配器(Adapte)模式B.合成(Composite)模式C.装饰(Decorator)模式D.桥接(Bridge)模式10.以下意图那些是用来描述ITERATOR(迭代器)?(C)A.使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。B.用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。C.提供一种方法顺序访问一个聚合对象中各个元素,而又不需暴露该对象的内部表示。D.运用共享技术有效地支持大量细粒度的对象。三得分阅卷教师三、填空题:(10分,每空1分)1.(依赖倒转)原则要求抽象不应该依赖于细节,细节应当依赖于抽象。2.主要用于描述对类和对象怎样交互和怎样分配职责的模式是(行为型模式)。3.MVC模型的基本工作原理是基于(观察者)模式,实现是属于(命令)模式。4.组合模式属于(结构型)模式、原型模式属于(创建型)模式。5.创立型模式的根本意图是要把(对象的创建)和(使用)的责任进行分离,从而降低系统的(耦合度)。5.(简单工厂)模式可以根据参数的不同返回不同的实例。四得分阅卷教师四、编程题:(15分)装订线《Java设计模式》期末考试试卷(A卷)第6页共8页认真分析以下类图:要求:1)说明选择了什么设计模式?//完成该步得5分2)写出其程序代码。//完成该步得10分解:1)本题使用了迭代器模式2)其参考程序代码如下所示:interfaceAggregate{IteratorcreateIterator();}interfaceIterator{voidfirst();voidnext();booleanhasNext();ObjectcurrentItem();}classConcreteAggregateimplementsAggregate{privateObject[]obj={筷,杯,锅”,碗,瓢,盆};《Java设计模式》期末考试试卷(A卷)第7页共8页publicIteratorcreateIterator(){returnnewConcreteIterator();}privateclassConcreteIteratorimplementsIterator{privateintcurrentIndex=0;publicvoidfirst(){currentIndex=0;}publicvoidnext(){if(currentIndexobj.length){currentIndex++;}}publicbooleanhasNext(){returncurrentIndexobj.length;}publicObjectcurrentItem(){returnobj[currentIndex];}}}classClient{publicstaticvoidprocess(Aggregatea){Iteratori=a.createIterator();while(i.hasNext()){System.out.println(i.currentItem().toString());i.next();}}publicstaticvoidmain(Stringa[]){Aggregatea=newConcreteAggregate();process(a);}}五得分阅卷教师五、综合题:(25分)1.某旅游公司(如:广之旅)欲利用假期为韶关学院学生开展夏令营活动,帮助大学生同国外大学生交流,根据如下描述选择合适的设计模式进行设计。1)该公司能帮助学生同国外多个大学生联系,如:哈佛大学、墨尔本大学;2)公司为每个国外大学分配一名翻译,如:中英翻译、中澳翻译。要求:(1)正确选择设计模式//完成该步得5分装订线《Java设计模式》期末考试试卷(A卷)第8页共8页(2)画出其类图//完成该步得12分(3)正确解释该类图中的成员角色//完成该步得8分解:对于描述1)可以选择使用中介者模式,对于描述2)可以选择使用适配器模式,参考类图如下所示:在类图中,各类的角色如下:1)旅游公司:抽象中介者;2)广之旅:具体中介者;3)大学生:抽象同事类;4)韶关学院学生:是具体同事类,也是目标抽象类;5)哈佛大学生、墨尔本大学生:是具体同事类,也是适配者类;6)翻译1、翻译2:适配器类。

1 / 8
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功