设计模式考试复习题集含答案解析

上传人:痛*** 文档编号:104144293 上传时间:2022-06-09 格式:DOC 页数:9 大小:278.50KB
返回 下载 相关 举报
设计模式考试复习题集含答案解析_第1页
第1页 / 共9页
设计模式考试复习题集含答案解析_第2页
第2页 / 共9页
设计模式考试复习题集含答案解析_第3页
第3页 / 共9页
点击查看更多>>
资源描述
一、1. 设计模式一般用来解决什么样的问题: A.同一问题的不同表相2. 以下属于面向对象根本原那么的是: C.里氏代换3. Open-Close原那么的含义是一个软件实体:A.应当对扩展开放,对修改关闭.4. 当我们想创立一个具体的对象而又不希望指定具体的类时,使用A模式。A.创立型 5. 要依赖于抽象不要依赖于具体。即针对接口编程不要针对实现编程:D依赖倒转原那么6. 依据设计模式思想,程序开发中应优先使用的是( A )关系实现复用。A, 委派7. 设计模式的两大主题是( D ) D.系统复用与系统扩展8. 单体模式中,两个根本要点(AB)和单体类自己提供单例A .构造函数私有 B.唯一实例9. 以下模式中,属于行为模式的是( B ) B观察者10. “不要和陌生人说话 是( D )原那么的通俗表述 D.迪米特1. 软件体系构造是指一个系统的有目的的设计和规划,这个设计规划既不描述活动 ,也不描述系统怎样开发,它只描述系统的组成元素及其相互的交互协作 。2一个UML模型只描述了一个系统要做什么,它并没告诉我们系统是怎么做。3接口是可以在整个模型中反复使用的一组行为,是一个没有属性 而只有方法的类。4多重性指的是,某个类有多个对象可以和另一个类的 一对象关联。5当一个类的对象可以充当多种角色时,自身关联就可能发生。6在泛化关系中,子类 可以替代父类。后前者出现的可以一样地方。反过来却不成立。7最通常的依赖关系是一个类操作的形构 中用到了另一个类的定义。8组成是强类型的聚集,因为聚集中的每个局部体只能属于一个整体。9实现的符号和继承的符号有相似之处,两者的唯一差异是实现关系用虚线表示,继承关系用实线 表示。10. 设计模式中应优先使用 对象组合而不是 类继承。1. 适配器模式属于创立型模式构造型 F 2. 在设计模式中,“效果只是指“原因和结果 T 3. 设计模式使代码编制不能真正工程化 T 4. 面向对象语言编程中的异常处理,可以理解为责任链模式T 5. 反模式就是反对在软件开发过程中使用设计模式分析:反模式用来解决问题的带有共性的不良方法F 1. 什么是设计模式?设计模式目标是什么?答:设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经历的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解,保证代码可靠性。2. 设计模式中一般都遵循的原那么有什么?答:开闭原那么、根据场景进展设计原那么、优先组合原那么、包容变化原那么3. “Gang of Four针对“创立优秀面向对象设计建议了哪些策略?答:针对接口编程、优先使用对象组合而不是类继承,找到并封装变化点。4. 面向对象系统中功能复用的两种最常用技术是什么?答:类继承和对象组合,类继承允许你根据其他类的实现来定义一个类的实现。父类的部细节对子类可见。类继承是在编译时刻静态定义的,且可直接使用,类继承可以较方便地改变被复用的实现。对象组合是类继承之外的另一种复用选择。新的更复杂的功能可以通过组装或组合对象来获得。对象组合要求被组合的对象具有良好定义的接口。5. 只根据抽象类中定义的接口来操纵对象有什么好处? 答:1)客户无须知道他们使用对象的特定类型,只须对象有客户所期望的接口。2)客户无须知道他们使用的对象是用什么类来实现的,他们只须知道定义接口的抽象类。五、应用题分值15公司架构:经理、工程师、技师和后勤人员都是公司的雇员,经理管理工程师、技师和后勤人员。高层经理领导较低级别的经理。典型层次图如下:可以使用哪种设计模式实现公司的层级关系?并说明为什么?组合模式,第一,其公司关系架构为树形构造;第二,其表示了局部-整体关系自己扩展1. 在观察者模式中,表述错误的选项是 C C. 观察者可以改变被观察者的状态,再由被观察者通知所有观察者依据被观察者的状态进展。2. 对于违反里式代换原那么的两个类,可以采用的候选解决方案错误的选项是: D D. 以上方案错误3. 以下模式属于构造型设计模式的是 AB A. posite B. 享元Flyweight模式4. 关于继承表述错误的选项是: D D. 继承本质上是“白盒复用,对父类的修改,不会影响到子类。5. 对于依赖倒转的表述错误的选项是CC. 从选项B的角度论述,一个对象可以有多个接口。6. 可以使用哪一种设计模式限制类的实例唯一? D D单体模式7. Java数据库连接库JDBC用到哪种设计模式 B ?B.工厂方法8. 关于运用GOF工厂方法的效果Consequences,说法不正确的选项是C有利于产品的一致性8. 在应用程序中可用哪些设计模式别离出算法? B B. 策略模式9. 工厂方法也称为 D D. 虚构造器10. 可以使用哪种设计模式将抽象和实现解耦,使得抽象和实现可以单独变化? B 桥接模式1. 面向对象的七条根本原那么包括:开闭原那么,里式代换原那么,合成聚合原那么以及迪米特法那么,依赖倒转,单一原那么,接口隔离。2. 在存在继承关系的情况下,方法向超类方向集中,而数据向子类方向集中。3. 适配器模式,分为类的适配器和对象的适配器两种实现。其中类的适配器采用的是继承关系,而对象适配器采用的是组合聚合关系。4. 设计模式的四个根本要素是名字,意图,问题和解决方案。5. .创立型模式的根本意图是要把对象的创立和使用别离的责任进展别离,从而降低系统的耦合度。6. 工厂模式分为(简单工厂),(工厂方法),(抽象工厂)三种类型。7. 门面模式是(迪米特)法那么的典型运用8. MVC模型的根本工作原理是基于(观察者)模式,实现是基于命令模式9. 设计模式的思想根源是(开闭)根本原那么的宏观运用,本质上是没有任何模式的,发现模式的人永远是大师,而死守模式的人,最对只能是一个工匠.1.在MVC模型中M、V、C分别指什么?简述它们之间的关系?M:模型(Model), V:视图(View) C:控制Controller)。MVC模式的目的就是实现Web系统的职能分工。Model层实现系统中的业务逻辑,通常可以用JavaBean或E来实现。View层用于与用户的交互,通常用JSP来实现。Controller层是Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作。2.什么是开闭原那么?软件实体应当对扩展开放,对修改关闭,软件系统中包含的各种组件,例如模块Modules、类Classes以及功能Functions等,应该在不修改现有代码的根底上,引入新功能。开闭原那么中“开,是指对于组件功能的扩展是开放的,是允许对其进展功能扩展的;开闭原那么中“闭,是指对于原有代码的修改是封闭的,即不应该修改原有的代码。3.设计数据库的系统日志,要考虑使用哪些设计模式?答:命令模式,备忘录模式,外观模式4.使用工厂模式的主要原因是什么?工厂模式定义:提供创立对象的接口.因为工厂模式就相当于创立实例对象的new,我们经常要根据类Class生成实例对象,如Aa=newA()工厂模式也是用来创立实例对象的,所以以后new时就要多个心眼,是否可以考虑使用工厂模式,虽然这样做,可能多做一些工作,但会给你系统带来更大的可扩展性和尽量少的修改量。5、猫大叫一声,所有的老鼠都开场逃跑,主人被惊醒问:1设计可能用到什么设计模式?2画出其类图。 观察者模式 分析:要有联动性,老鼠和主人的行为是被动的;考虑可扩展性,猫的叫声可能引起其他联动效应。一、 多项选择题1以下是模式的根本要素的是ABCDA名称B意图C解决方案D参与者和协作者2常用的描述设计模式的格式有ABCDA意图B动机C适用性D构造3以下哪些问题通过应用设计模式能够解决ADA指定对象的接口D设计应支持变化4面向对象系统中功能复用的最常用技术是 AB 。A类继承B对象组合5常用的根本设计模式可分为 A 。A创立型、构造型和行为型6以下关于创立型模式说确的是A 。A创立型模式关注的是对象的创立 7以下属于创立型模式的是AC 。A抽象工厂Abstract Factory模式 C单例Singleton模式8 ( C )模式是利用一个对象,快速生成一批对象。C原型Prototype模式9在不破坏类封装性的根底上,使得类可以同不曾估计到的系统进展交互。主要表达在( AD )。 A适配器Adapter模式D桥接Bridge模式10构造型模式中最表达扩展性的几种模式是( C ) C装饰Decorator模式11行为类模式使用 C 在类间分派行为。C对象组合 12以下属于行为对象模式的是(ABCD ) A模板Template Method模式 B迭代器Iterator模式C命令mand模式D观察者Observer模式13封装分布于多个类之间的行为的模式是( C )C访问者Visitor模式14Observer观察者模式适用于(C)。C当一个对象必须通知其它对象,而它又不能假定其它对象是谁。也就是说你不希望这些对象是紧耦合的。15Java的异常处理机制可理解为哪一种行为模式 C 。C职责链Chain of Responsibility模式二、 填空题分值201. 单一职责原那么的核心思想是系统中的每一个对象都应该只有一个单独的职责,而所有对象所关注的就是自身职责的完成。2. 开闭 原那么的核心思想是一个对象对扩展开放,对修改关闭;实现此原那么的关键就在于 抽象 、别离出 扩展 局部和 修改 局部。3. 里氏替换原那么的核心思想是在任何父类出现的地方都可以用它的子类来替代。4. 依赖倒置原那么的核心思想是要依赖于抽象,而不要依赖于具体的实现。5. 接口隔离原那么的核心思想是不应该强迫客户程序依赖于他们不用的方法。即一个接口不需要提供太多的行为,应该只提供一种对外的功能,不应该把所有的操作都封装在一个接口中。6. 迪米特原那么的核心思想是一个对象应当对其它对象尽可能少的了解。或者说,只和你的朋友说话。这样一些对象可以看做朋友:当前对象本身、通过方法的参数传递进来的对象、当前对象所创立的对象、当前对象的实例变量所引用的对象和方法所创立或者实例化的对象。7. 优先使用组合原那么的核心思想是优先使用组合而非继承。8. 设计模式应该面向 对象 编程三、 判断题分值101. 单一职责原那么表现在面向对象的程序中就是“高聚、低耦合。(T) 2. 设计模式只能遵从使用,不能也无需创新。(F)3. 在面向对象编程时,无论何时何地都要使用GoF所给出的设计模式,这样编写的代码才比拟好。( F)4. 工厂方法能够提高聚性,松散耦合,并且有助于测试。( F )5. 对象要么构造其它对象,要么使用其它对象,绝不要两者兼顾。( T )问答题1、单例模式的两种实现方法,并说明优缺点?1懒汉式,在类被加载时,唯一的实例已经被创立。这个模式在java中很容易实现,在其他语言中很难.2饿汉式,在类加载的时候不创立单例实体。只有在第一次请例的时候创立,并且只在第一次创立后不再创佳该类的实例2 、什么是对象粒度? 所谓的对象粒度就是对象从抽象到具体的描述的程度。同样一个系统,同样的需求。两个设计师给出两种设计。两个设计代码行数差不多,但是类的数目不同。例如有一个对象,我可以用10行代码去构造它,我也可以用20行代码,后者比前者更为准确。3、MVC模式是个复合模式,请写出你两种你所知道的MVC中使用的模式。1观察者模式:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 2策略模式:定义了算法族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。4、举例说明,适配器模式和装配器在Java IO中的应用。1装饰者模式:在由InputStream,OutputStream,Reader和Writer代表的等级构造部,有一些流处理器可以对另一些流处理器起到装饰作用,形成新的,具有改善了的功能的流处理器。装饰者模式是Java I/O库的整体设计模式。这样的一个原那么是符合装饰者模式的2适配器模式:在由InputStream,OutputStream,Reader和Writer代表的等级构造部,有一些流处理器是对其它类型的流源的适配。这就是适配器模式的应用,适配器模式应用到了原始流处理器的设计上面,构成了I/O库所有流处理器的起点。5、 在面向对象程序设计中,常常需要防止过多case语句或者if语句,请给出一种设计模式防止过多的条件分支语句,同时指出这种设计模式如何帮助防止过多的Case语句?访问者模式。例如switch(pt)case A:break;case B:break; .1.把每个条件作成一个类,比方 A条件class A public void accept()/处理逻辑 2、然后把每个条件的处理方法都用一个类来管理.public class monVisitor public void visit(A a) a.accept();/其他条件的访问方法 public void visit(B b) b.accept();3、main里面就这样调用就行.public static void main(Stirng args) monVisitor visitor = new monVisitor();/如果是想用A条件,那么 visitor.visit(new A();这样写的好处,以后先加条件的话我只需要定义新的条件类就行,还有就是在monVisitor添加新条件的访问方法就行,这样就很好作到一个条件管理一个逻辑五、应用题分值10某房地产公司欲开发一套房产信息管理系统,根据如下描述选择适宜的设计模式进展设计: (1) 该公司有多种房型,如公寓、别墅等,在将来可能会增加新的房型;(2) 销售人员每售出一套房子,主管将收到相应的销售消息。如果对上述场景编程,那么上述1和2可能分别用到哪些设计模式?对于描述(1)可以选择使用工厂方法模式,对于描述(2)可以选择使用观察者模式,此题参考类图如下所示:1. 设计模式具有的优点( A )。A. 适应需求变化2. 以下图描述了一种设计模式Client,该设计模式不可以( A )。A. 动态决定由一组对象中某个对象处理该请求3.假设系统中的某子模块需要为其它模块提供访问不同数据库系统Oracle、SQL Server、DB2 UDB 等的功能,( B )设计模式可抽象出一样的数据库访问过程;B. 装饰4.系统中的文本显示类TextView和图片显示类PictureView都继承了组件类ponent,但希望最多只增加三个类,( B )设计模式可以实现该目的。B. 装饰5.下面的类图表示的是哪个模式AbstractFactory( A ) A. 抽象工厂模式6.下面的类图表示的是哪个设计模式Subject( D ) D. 观察者模式Observer7.下面的类图表示的是哪个模式Faade( B )B. 外观模式Facade8.下面的类图说明了哪个模式Product( D ) D. 工厂方法模式Factory Method9.下面的类图表示的是哪个设计模式Context( D ) D. 状态模式(State)10. 下面的类图说明了哪个模式Singleton( C ) C. 单例模式(Singleton)二、 填空题分值201工厂方法模式中,父类负责定义创立对象的公共接口,子类那么负责生成具体的对象。2.抽象工厂模式提供一系列相关或相互依赖对象的接口而无需指定它们具体的类。3原型模式用原型实例指定创立对象的种类,并且通过拷贝这些原型实例创立新的对象。4单例模式确保某一个类仅有一个实例,并自行实例化并向整个系统提供这个实例。5组合模式将对象组合成树形构造以表示“局部-整体的层次构造。使得用户对单个对象和组合对象的使用具有一致性。6外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用,为子系统中的一组接口提供一个一致的界面。7享元模式运用共享技术有效地支持大量细粒度的对象。8责任链模式使多个对象都有时机处理请求,从而防止请求的发送者和接收者之间的耦合关系。9观察者模式定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新。10模板方法模式定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。三、简答题分值30关于设计模式,请答复:1、 什么是设计模式?设计模式的目标是什么? 1、设计模式是一套被反复使用,多数人知晓的,经过分类编写的代码设计经历的总结。2、目标:为了可重用代码,让代码更容易被他人理解,保证代码可靠性。2、 设计模式具有哪三大特点? 1、可重用性,对一样类型问题反复出现,尽管问题的环境有不同,但解决方案有效。2、可传授性,问题反复出现,解决问题的方案一样,大家都承受该解决方案。3、名称,每个设计模式都有名称。3、 GOF 设计模式常用的有几种?GOF 设计模式按照模式的目的可分为哪三类? 123中;2、构造型,将现存的对象结合在一起。 行为性,提供一种显得灵活变化的行为。 创立型,穿件或实例化对象1、简述面向对象程序设计的六大根本原那么? 答:开闭原那么、里氏代换原那么、依赖倒转原那么、合成/聚合复用原那么、迪米特法那么、接口隔离原那么。2 、简述什么是单例模式,以及他解决的问题,应用的环境,解决的方案,模式的本质?答;在任何时间只有一个类实例存在的模式。需要有一个从中进展全局访问和维护某种类型数据的区域的环境下使用单例模式。解决这个问题的方法是为指示类是否已经实例化的变量提供一个互斥锁。解决方案就是保证一个类只有一个类实例存在。本质就是实例共用同一块存区域。3、为什么面向对象的分析和设计中优先使用组合,而非继承?答: 继承关系有很多缺点,如果合理使用组合那么可以有效的防止这些缺点,使用组合关系将系统对变化的适应力从静态提升到动态,而且由于组合将已有对象组合到了新对象中,因此新对象可以调用已有对象的功能。由于组合关系中各个对象的部实现是隐藏的,我们只能通过接口调用,因此我们完全可以在运行期用实现了同样接口的另外一个对象来代替原对象,从而灵活实现运行期的行为控制。而且使用合成关系有助于保持每个类的职责的单一性,这样类的层次体系以及类的规模都不太可能增长为不可控制的庞然大物。在下面的C+代码中,类SalesTicket能够完成打印票据正文的功能,阐述采用该设计模式该代码采用装饰(Decorator)设计模式实现。采用该设计模式的目的能够动态地给一个对象增加一些新的职责不不需要采用生成子类的方法。可以让客户选择给该类对象附加新的功能的时机以及是否增加新职责。比生成子类的方法更为灵活。主任可以审批1 万元以下的采购单,副董事长可以申批2.5 万元以下的采购单,董事长可以审批10万元以下的采购单,10 万元以上的采购单就需要开会决定。选择设计模式并其类图。责任链模式:一、1. 以动作和事务闻名,且以对象形式用来封:B命令模式2. 以下不属于创立型模式是 ( A ) PROXY代理3. 以下不属于构造型模式是 ( D ) D. SINGLETON(单例)4、以下不属于行为型模式是( D ) MEMENTO备忘录5、以下意图那个是用来描述BUILDER生成器( B ) 将一个复杂对象的构建与它的表示别离,使得同样的构建过程可以创立不同的表示。6、以下意图那个是用来描述PROTOTYPE原型( D )D. 用原型实例指定创立对象的种类,并通过拷贝这些原型创立新的对象。7、以下意图那个是用来描述ADAPTER适配器( A )将一个类的接口转换成客户希望的另外一个接口。本模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。8. 以下意图那个是用来描述BRIDGE桥接( B )B. 将抽象局部与它的实现局部别离,使它们都可以独立地变化。9. 以下哪个意图是用来描述POSITE组合?( C ) 将对象组合成树形构造以表示局部-整体的层次构造。10、以下那个是用来描述DECORATOR装饰( D ) 动态地给一个对象添加一些额外的职责。11、以下意图那个是用来描述 FACADE外观?( A ) 为子系统中的一组接口提供一个一致的界面,本模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。12、以下意图那个是用来描述FLYWEIGHT享元( B )B. 运用共享技术有效地支持大量细粒度的对象。13、以下意图那个是用来描述 PROXY代理( C )C.为其他对象提供一种代理以控制对这个对象的访问。14、以下意图那个是用来描述CHAIN OF RESPONSIBILITY(职责链)?( D )D.使多个对象都有时机处理请求,从而防止请求的发送者和接收者之间的耦合关系。15、以下意图那个是用来描述 MAND命令( A )A、将一个请求封装为一个对象;对请求排队或记录请求日志,以及支持可撤消的操作1. 命令模式把一个请求或操作封装到一个对象中。2. 装饰模式封装一些施加于某种数据构造元素之上的操作,这样修改操作不影响数据构造。3. 外观模式为子系统对外提供的一组接口提供一个统一的界面。4. 策略模式针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使算法可相互替换。5. 观察者模式让多个对象同时监听某一个主题对象,主题对象的变化会通知监听对象,使得监听对象可以自动更新。6. 适配器模式把一个类的接口变换成客户端所期待的另一种接口。7. 访问者模式以对客户端透明方式扩展对象的功能。8. 简单工厂模式定义一个具体的工厂类来负责创立一些类的实例,而这些被创立的类应有一个共同的父类。9. 工厂方法模式定义一个用于创立对象的接口,让子类决定实例化哪一个类,从而使一个类实例化延迟到其子类。10. 抽象工厂类模式提供了一个创立一系列相关或相互依赖对象的接口,而无需指定他们具体的类。四、问答题分值301、简述什么是工厂模式,以及他解决的问题,应用的环境,解决的方案,模式的本质? 定义一个用于创立对象的接口,让子类决定将哪一个类实例化;利用工厂来解决接口选择的问题的模式 ;应用环境:当一个类无法预料要创立哪种类的对象或是一个类需要由子类来指定 创立的对象时,就需要用到工厂模式; 解决方案:定义一个创立对象的接口,让子类来决定具体实例化哪一个类 ;本质就是根据不同的情况来选择不同的接口2、什么是单一职责原那么?根本思想:SRP使得一个类或一个模块承当的责任尽可能少,是尽可能少的因素的因素或动机影响该类或该模块,即增大类或模块的聚性,减少其耦合,SRP是所有原那么中最简单的之一,也是最难正确运用之一3、继承和组合各有什么优缺点?组 合 关 系继 承 关 系优点:不破坏封装,整体类与局部类之间松耦合,彼此相对独立缺点:破坏封装,子类与父类之间严密耦合,子类依赖于父类的实现,子类缺乏独立性优点:具有较好的可扩展性缺点:支持扩展,但是往往以增加系统构造的复杂度为代价优点:支持动态组合。在运行时,整体对象可以选择不同类型的局部对象缺点:不支持动态继承。在运行时,子类无法选择不同的父类优点:整体类可以对局部类进展包装,封装局部类的接口,提供新的接口缺点:子类不能改变父类的接口缺点:整体类不能自动获得和局部类同样的接口优点:子类能自动继承父类的接口缺点:创立整体类的对象时,需要创立所有局部类的对象优点:创立子类的对象时,无须创立父类的对象5、代理模式和中介者模式有什么不同?1,中介者模式:A,B之间的对话通过C来传达。A,B可以互相不认识减少了A和B对象间的耦合2,代理模式:A要送B礼物,A,B互相不认识,那么A可以找C来帮它实现送礼物的愿望封装了A对象3,外观模式:A和B都要实现送花,送巧克力的方法,那么我可以通过一个抽象类C实现送花送巧克力的方法A和B都继承C。封装了A,B子类代理模式和外观者模式这两种模式主要不同就是代理模式针对的是单个对象,而外观模式针对的是所有子类。五、应用题分值15为实现应用的界面与应用数据的别离,一个表格对象和一个柱状图对象可使用不同的表示形式描述同一个应用数据对象的信息。请根据表达述,选择设计模式,并给出设计模式的类图。观察者模式 9 / 9
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 成人自考


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!