2020年设计模式试卷_第1页
2020年设计模式试卷_第2页
2020年设计模式试卷_第3页
2020年设计模式试卷_第4页
2020年设计模式试卷_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

设计模式期中考试试题一:单项选择(共20道,每道2分)1、设计模式一般用来解决什么样的问题()A.同一问题的不同表相B不同问题的同一表相C.不同问题的不同表相D.以上都不是2、下列属于面向对象基本原则的是()A.继承B.封装C.里氏代换D都不是3、Open-Close原则的含义是一个软件实体()A.应当对扩展开放,对修改关闭.B.应当对修改开放,对扩展关闭C.应当对继承开放,对修改关闭D.以上都不对4、当我们想创建一个具体的对象而又不希望指定具体的类时,可以使用()模式。A.创建型B.结构型C行为型D.以上都可以5、要依赖于抽象,不要依赖于具体。即针对接口编程,不要针对实现编程,是()的表述A.开-闭原则B.接II隔离原则C.里氏代换原则D.依赖倒转原则6、设计模式的两大主题是()A.系统的维护与开发 B对象组合与类的继承C.系统架构与系统开发D.系统更用与系统扩展7、“不要和陌生人说话”是()原则的通俗表述A.接II隔离B.里氏代换C.依赖倒转D.迪米特:一个对象应对其他对象尽可能少的了解8、构造者的的退化模式是通过合并( )角色完成退化的。A.抽象产品B产品C创建者D使用者9、以下关于简单工厂模式叙述错误的是(A它属于GoF23种设计模式B它是最简单的设计模式之一C它是学习其他创建型模式的基础D它只需要记住一个简单的参数即可获得所需对象的实例E它类中的方法通常为静态方法F它返回的类都有一个公共的父类和公共的方法10、对象适配器模式是( )原则的典型应用。A.合成聚合及用原则B.里式代换原则C.依赖倒转原则 D.迪米特法则D.以上表述全部错误。.对于依赖倒转的表述错误的是( )A.依赖于抽象而不依赖于具体,也就是针对接II编程。B.依赖倒转的接口并非语法意义上的接II,而是,一个类对其他对象进行调用时,所知道的方法集合。C.从选项B的角度论述,一个对象可以有多个接口。D.实现了同一接II的对象,可以在运行期间,顺利地进行替换。而且不必知道所示用的对象是那个实现类的实例。E.此题没有正确答案。.现有5个产品族,分布于3各不同的产品等级结构,只要指明一个产品所处的产品族以及它所在的等级结构,就可以唯一地确认这个产品。那么使用抽象工厂方法模式只需要提供( )个具体工厂即可。A5B3C8D15E1F30G4

.抽象工厂模式的优点有( )A抽象工厂模式隔离了具体类的生成,使得客户并不需要知道什么被创建。B所有的具体工厂都实现了抽象工厂中定义的那些公共接II,因此只需改变具体工厂的实例,就可以在某种程度上改变整个软件系统的行为。C应用抽象工厂模式可以实现高内聚低耦合的设计目的,因此抽象工厂模式得到了广泛的应用。D增加新的具体工厂和产品族很方便,无须修改已有系统,符合“开闭原则”。E添加新的产品对象时,难以扩展抽象工厂来生产新种类的产品F开闭原则的倾斜性(增加新的工厂和产品族容易,增加新的产品等级结构麻烦).对于建造一辆汽车,使用建造者模式中ConcreteBulider(具体建造者)需要做的是()A提供汽车的各个部件的构造和装配方法建造汽车CA提供汽车的各个部件的构造和装配方法建造汽车C建造汽车部件并且组合成汽车指挥汽车建造E定义抽象接II15单例模式的最主要的思想是( )A构造方法私有化 B使用默认构造方构造方法静态化A构造方法私有化 B使用默认构造方构造方法静态化D类私有化E类不允许被继承F类的方法不允许被访问.在笔记本电脑用电的例子中,属于适配器的是( )A充电器B插座C笔记本D笔记本电源插孔.桥接模式将继承关系转换为( )关系,从而降低了类与类之间的耦合,减少了代码编写量A关联B多态C实现D重构E抽象.组合模式描述了如何将容器对象和叶子对象进行( )组合,使得用户在使用时无须对它们进行区分,可以一致地对待容器对象和叶子对象A递归B重构C并列D内置E关联.面向对象设计原则首先都是( )的原则,遵循这些设计原则可以有效地提高系统的匆用性,同时提高系统的可维护性。A重载B复用C面向对象D封装E继承F多态G抽象.结构型模式分为类模式和对象模式,以下可以是类模式的是( )A适配器模式B桥接模式C组合模式D装饰模式E外观模式 F享元模式G代理模式-:多项选择题(共10道,每道3分).以下说法错误的有( )A对于面向对象的软件系统设计来说,在支持可维护性的同时,需要提高系统的可复用性。B迪米特法则要求一个软件实体应当尽可能多的与其他实体发生相互作用。C单一职责原则要求在软件系统中,一个类只负货一个功能领域中的相应职责。D开闭原则要求一个软件实体应当对扩展开放,对修改关闭,但是为了增强系统功能,可以随便的修改源代码。E里氏代换原则可以通俗表述为在软件中如果能够使用基类对象,那么一定能够使用其子类对象。F依赖倒转原则要求抽象不应该依赖于细节,细节应该依赖于抽象;要针对接II编程,不要针对实现编程。G接II隔离原则要求客户端不应该依赖那些它不需要的接II,即将一些大的接II细化成一些小的接口供客户端使用。H合成更用原则要求复用时尽量使用继承,而不使用对象组合。TOC\o"1-5"\h\z.设计模式一般有如下几个基本要素:模式名称、问题、目的、解决方案、效果、实例代码和相关设计模式,其中的关键元素包括以下四个方面( )A模式名称B问题C目的D解决方案E效果F实例代码G相关设计模式.简单工厂模式包含三个角色是( )A工厂角色B抽象产品口 C具体产品角色D抽象接口角色E生产者角色F用户角色G使用者角色.工厂方法模式与简单工厂模式相比的优点有( )A工厂方法模式很好的符合开闭原则B工厂方法类模式中工厂类职责变轻,业务逻辑相对简单C具体产品与工厂类之间的耦合降低D工厂方法模式是简单工厂模式的进一步抽象和推广EFactory类内的方法常使用静态方法F只提供一个工厂类G不需要考虑对■象的具体创建细节闭原则的倾斜性(增加新的工厂和产品族容易,增加新的产品等级结构麻烦).建造者模式的优点有哪些( )A分步骤构建一个复杂的对象B应对''复杂对象各个部分〃的频繁需求变动C用户使用不同的具体建造者即可得到不同的产品对象D如果产品的内部变化复杂,可能会导致需要定义很多具体建造者类来实现这种变化,导致系统变得很庞大E如果产品之间的差异性很大,则不适合使用建造者模式,因此其使用范I韦I受到一定的

限制.对于原型模式的优点有( )A当创建新的对象实例较为更杂时,使用原型模式可以简化对象的创建过程,通过一个已有实例可以提高新实例的创建效率。B可以动态增加或减少产品类。C原型模式提供了简化的创建结构。D可以使用深克隆的方式保存对象的状态。E实现深克隆时需要编写较为更杂的代码。F需要为每一个类配备一个克隆方法.单例模式的要点( )A某个类只能有一个实例 B必须自行创建这个实例C必须自行向整个系统提供这个实例D类的方法不能被访问E实例的创建个数不受限制 F实例的创建者不受限制.适配器模式的优点( )A将目标类和适配者类解耦B增加了类的透明性和更用性C灵活性和扩展性都非常好,通过使用配置文件,可以很方便地更换适配器D其使用有一定的局限性,不能将一个适配者类和它的子类都适配到目标接口。E要想置换适配者类的方法不容易.组合模式包含角色有( )A抽象构件 B叶子构件 C容器构件D客户类ED客户类E树根构F枝干构件10桥接模式的优点(A分离抽象接「I及其实现部分。B桥接模式提高了系统的可扩充性,在两个变化维度中任意扩展一个维度,都不需要修改原有系统。C实现细节又寸客户透明,可以对用户隐藏实现细节。D桥接模式的引入会增加系统的理解与设计难度E桥接模式要求正确识别出系统中两个独立变化的维度,因此其使用范围具有一定的局限性。三:简答题(共2道题,每道10分).什么是开—闭原则。.画出抽象工厂的类图。四:读程序题(1道,每道10分)读下面程序,并指出是何种模型,以及该模型都有那些角色publicclassBird{publicvoidtweedle(){Systemout.pnntln(鸣儿叽叽叫!)}publicvoidfly(){System.out.printing鸟儿快快飞!”);}}publicclassBirdAdapterextendsBirdimplementsRobot{publicvoidciy(){Systemout.print("机器人模仿:*1);super.tweedle();publicvoidmove(){System.out.print("机器人模仿:");super.fly();}}publicclassDog{publicvoidwang(){System.out.printing狗汪汪叫!");}publicvoidninQ{System.out.printin("狗快快跑!");}}publicclassDogAdapterextendsDogmiplementsRobot{publicvoidcryQSystem.out.print("机器人模仿:");super.wang();publicvoidmoveQ{System.out.print("机器人模仿:");super.iunO;}}publicmterfaceRobot{publicvoidciy();publicvoidmove();}publicclassClient{publicstaticvoidniain(Striiigargs[]){Robotiobot=(Robot)XMLUtil.getBeanQ;robot.cry();robot.move();}}unportjavax.xiiil.parsers.*;unportorg.w3c.dom.*;unportorg.xiiil.sax.SAXException;unportjava.io.*;publicclassXMLUtil{〃该方法用于从XML配置文件中提取具体类类名,并返回一个实例对象publicstaticObjectgetBean(){try{〃创建文档对象DocumentBuilderFactoiydFactory=DocumentBuildeiFactoiynewIiistaiice();DocumentBuilderbuilder=dFactoiynewDocumentBuilder();Documentdoc;doc=builder.paise(newFile(ncoiifig.xiiil,'));〃获取包含类名的文本节点NodeListill=doc.getElementsByTagName(HclassNameH);NodeclassNode=iil.item(0).getFirstCliildO;StiiiigcName=classNode.getNodeValue(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论