【JAVA设计模式】期末考试复习资料

上传人:仙*** 文档编号:92596511 上传时间:2022-05-19 格式:DOC 页数:8 大小:55.50KB
返回 下载 相关 举报
【JAVA设计模式】期末考试复习资料_第1页
第1页 / 共8页
【JAVA设计模式】期末考试复习资料_第2页
第2页 / 共8页
【JAVA设计模式】期末考试复习资料_第3页
第3页 / 共8页
点击查看更多>>
资源描述
?JAVA设计模式?复习资料一、单项选择题1设计模式起源于 A、机械设计B、建筑工程设计C、水利工程设计D、工业电力化设计2“不要和陌生人说话是 原那么的通俗表述。 A、接口隔离B、里氏替换C、依赖倒置D、迪米特 3目前常见的设计模式主要有 种。A、23B、21C、32D、284以下关于单一职责原那么的表达不正确的选项是 。A、单一职责原那么的英文名称是Single Responsibility Principle.B、单一职责原那么要求一个类只有一个职责C、单一职责原那么有利于对象的稳定,降低类的复杂性D、单一职责原那么提高了类之间的耦合性5以下关于依赖倒置原那么的表达不正确的选项是 A、依赖倒置原那么的简称是DIPB、高层模块不依赖于低层模块,低层模块依赖于高层模块C、依赖倒置原那么中高层模块和低层模块都依赖于抽象D、依赖倒置原那么实现模块间的松耦合6下面关于单例模式说法错误的选项是 A、单例模式是指一个类只有一个实例B、单例类从实现方式上分为懒汉式和饿汉式C、单例类从功能上分为状态单例类和无状态单例类D、可以通过继承的方式对单例类进展扩展得到功能更丰富的单例类7下面关于工厂方法模式说法错误的选项是 。A、工厂方法模式使一个类是实例化延迟到其子类中B、工厂方法模式中具有抽象工厂、具体工厂、抽象产品和具体产品4个角色C、工厂方法模式可以处理多个产品的多个等级构造D、工厂方法模式可以屏蔽产品类8在以下情况不适合使用责任职责链模式 A、有多个对象可以处理请求,哪个对象处理该请求在运行时刻自动确定。B、在需要用比拟通用和复杂的对象指针代替简单的指针的时候。C、你想在不明确指定接收者的情况下,向多个对象中的一个提交一个请求。D、一个请求需要一系列的处理工作。9当我们想创立一个具体的对象而又不希望指定具体的类时,可以使用 模式A、构造型B、创立型C、行为型D、以上都可以10以下用来描述适配器模式的是 A、表示一个作用于某对象构造中的各元素的操作,它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。B、定义一个用于创立对象的接口,让子类决定实例化哪一个类。C、将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。D、动态地给一个对象增加一些额外的职责。11以下用来描述命令模式是 A、将一个请求封装为一个对象,从而使你可用不同的请求对客户进展参数化;对请求排队或记录请求日志,以及支持可撤消的操作。 B、定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换,本模式使得算法可独立于使用它的客户而变化。 C、为其他对象提供一种代理以控制对这个对象的访问。 D、保证一个类仅有一个实例,并提供一个访问它的全局访问点。12以下关于创立型模式说法正确的选项是A、创立型模式关注的是对象的创立方法B、创立型模式关注的是功能的实现方法C、创立型模式关注的是组织类和对象的常用方法 D、创立型模式关注的是对象间的协作 13以下用来描述装饰模式的是 A、运用共享技术有效地支持大量细粒度的对象B、用原型实例指定创立对象的种类,并且通过拷贝这些原型创立新的对象C、将抽象局部与它的实现局部别离,使它们都可以独立地变化D、动态地给一个对象添加一些额外的职责14不应该强迫客户依赖于它们不用的方法,是关于()的表述。 A、开-闭原那么B、接口隔离原那么C、里氏替换原那么D、依赖倒置原那么15以下用来描述外观模式的是() A、为子系统中的一组接口提供一个一致的界面,本模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 B、定义一个用于创立对象的接口,让子类决定实例化哪一个类。C、保证一个类仅有一个实例,并提供一个访问它的全局访问点。 D、在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。样以后就可将该对象恢复到原先保存的状态。16以下意图哪个是用来描述桥梁模式 A、提供一个创立一系列相关或相互依赖对象的接口,而无需指定它们具体的类。B、将抽象局部与它的实现局部别离,使它们都可以独立地变化。C、将一个复杂对象的构建与它的表示别离,使得同样的构建过程可以创立不同的表示。D、动态地给一个对象添加一些额外的职责。17开闭原那么的含义是一个软件实体 A、应当对继承开放,对实现关闭B、应当对修改开放,对扩展关闭C、应当对扩展开放,对修改关闭D、以上都不对18以下哪个用来描述建造者模式 A、定义一个用于创立对象的接口,让子类决定实例化哪一个类B、保证一个类仅有一个实例,并提供一个访问它的全局访问点。C、将一个复杂对象的构建与它的表示别离,使得同样的构建过程可以创立不同的表示。D、运用共享技术有效地支持大量细粒度的对象。19以下哪个不属于设计模式的要素 A、模式名称B、问题C、因素D、环境20以下不属于构造型模式的是 A、代理模式B、工厂方法模式C、适配器模式D、享元模式1-5 BDADB6-10 DCBBC11-15 AADBA16-20 BCCCB21关于模式应用场景,在以下哪种情况适合使用组合模式 A、你想使用一个已经存在的类,而它的接口不符合你的需求。B、当一个类的实例只能有几个不同状态组合中的一种时。C、你想表示对象的局部-整体层次构造。D、一个对象的行为取决于它的状态,并且它必须在运行时根据状态改变行为。22Java的异常处理机制可理解为哪一种行为模式 A、观察者模式B、迭代器模式C、职责链模式D、策略Strategy模式23当创立一个具体的对象而又不希望指定具体的类时,可以使用 模式。A、构造型 B、创立型C、行为型 D、以上都可以24以下哪个用来描述建造者模式 A、定义一个用于创立对象的接口,让子类决定实例化哪一个类B、将一个复杂对象的构建与它的表示别离,使得同样的构建过程可以创立不同的表示。C、保证一个类仅有一个实例,并提供一个访问它的全局访问点。D、运用共享技术有效地支持大量细粒度的对象。25设计模式的两大主题是 A、系统的维护与开发 B、 对象组合与类的继承C、系统架构与系统开发 D、系统复用与系统扩展26要依赖于抽象,不要依赖于具体,即针对接口编程,不要针对实现编程,是 的表述。A、开闭原那么 B、接口隔离原那么C、里氏替换原那么 D、依赖倒置原那么27以下意图哪个是用来描述桥梁模式 A、提供一个创立一系列相关或相互依赖对象的接口,而无需指定它们具体的类。B、将抽象局部与它的实现局部别离,使它们都可以独立地变化。C、将一个复杂对象的构建与它的表示别离,使得同样的构建过程可以创立不同的表示。D、动态地给一个对象添加一些额外的职责。28以下意图哪个是用来描述抽象工厂模式 A、提供一个创立一系列相关或相互依赖对象的接口,而无需指定它们具体的类。B、定义一个用于创立对象的接口,让子类决定实例化哪一个类。C、将一个类的接口转换成客户希望的另外一个接口。D、表示一个作用于某对象构造中的各元素的操作。29开闭原那么的含义是一个软件实体 A、应当对扩展开放,对修改关闭B、应当对修改开放,对扩展关闭C、应当对继承开放,对修改关闭D、以上都不对30 对于违反里氏替换原那么的两个类,可以采用的候选解决方案错误的选项是: A、创立一个新的抽象类C,作为两个具体类的超类,将A和B共同的行为移动到C中,从而解决A和B行为不完全一致的问题。B、将B到A的继承关系改组成委派关系。C、区分是“Is-a还是Hasa。如果是“Is-a,可以使用继承关系,如果是Hasa应该改成委派关系D、以上方案错误31以下意图那个是用来描述ADAPTER适配器? A、将一个类的接口转换成客户希望的另外一个接口,本模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。B、定义一个用于创立对象的接口,让子类决定实例化哪一个类。C、表示一个作用于某对象构造中的各元素的操作,它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。D、将一个请求封装为一个对象,从而使你可用不同的请求对客户进展参数化;对请求排队或记录请求日志,以及支持可撤消的操作。32“不要和陌生人说话是 原那么的通俗表述。 A、接口隔离B、里氏替换C、依赖倒置D、迪米特33以下关于创立型模式说法正确的选项是 A、创立型模式关注的是对象的创立B、创立型模式关注的是功能的实现C、创立型模式关注的是组织类和对象的常用方法D、创立型模式关注的是对象间的协作34关于模式适用性,在以下情况不适合使用享元模式? A、一个应用程序使用了大量的对象。B、完全由于使用大量的对象,造成很大的存储开销。C、对象的大多数状态都可变为外部状态。D、你想使用一个已经存在的类,而它的接口不符合你的需求。35适配器模式是 原那么的典型应用。A、合成聚合复用原那么 B、里氏替换原那么C、依赖倒置原那么 D、迪米特法那么21-25 CCBBD26-30DBAAD 31-35ADADA二、填空题1、设计模式分为_创立型_、_行为型_、_构造型_三大类型。2、设计模式中的六个主要原那么主要包括:单一职责原那么、依赖倒置原那么、_里氏替换原那么_、_接口隔离原那么_、迪米特法那么和开闭原那么。3、设计模式中,对迪米特法那么进展应用的设计模式有外观模式和_中介者模式_。4、_装饰模式_模式用于动态地给一个对象添加一些额外的职责。5、_外观模式_模式要求一个子系统的外表与其内部的通信必须通过一个统一的对象进展。6、_桥梁模式_模式的定义是将抽象和现实解耦,使得两者可以独立地变化。7、_观察者模式_模式定义对象间一种一对多的关系,使得每当一个对象改变状态,那么所有依赖于它的对象都会得到通知并被自动更新。8、_行为_型模式主要用于描述对类或对象怎样交互和怎样分配职责。9、组合模式属于_构造型_型模式、原型模式属于_创立型_型模式。10、_模板方法_ 模式定义一个操作中的算法框架,将一些步骤延迟到子类中实现。11、_装饰_模式用于动态地给一个对象添加一些额外的职责。12、_外观_模式要求一个子系统的外表与其内部的通信必须通过一个统一的对象进展。13、_策略_模式定义一组算法,将每个算法封装起来,并且使它们之间可以互换。14、_备忘录_模式捕获一个对象的内部状态,并在该对象之外保存这个状态,以后可以将该对象恢复到原先保存的状态。15、_适配器_模式将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。16、_规格模式_模式是策略模式和组合模式的扩展。1、创立型、行为型、构造型2、里氏替换原那么、接口隔离3、中介者模式4、装饰模式5、外观模式6、桥梁模式7、观察者模式8行为9构造型、创立型10模板方法11、装饰12、外观13、策略14、备忘录15、适配器16、规格模式三、简答题1、简述依赖倒置原那么的三层含义、在Java当中的表达和优点。答:接口隔离原那么有如下两种定义: 客户端不应该依赖它不需要的接口;类间的依赖关系应该建立在最小的接口上 接口隔离原那么的具体的含义如下 :1一个类对另外一个类的依赖性应当是建立在最小的接口上的 2一个接口代表一个角色,不应当将不同的角色都交给一个接口。没有关系的接口合并在一起,形成一个臃肿的大接口,这是对角色和接口的污染。因此使用多个专门的接口比使用单一的总接口要好3不应该强迫客户依赖于它们不用的方法。接口属于客户,不属于它所在的类层次构造。即不要强迫客户使用它们不用的方法,否那么这些客户就会面临由于这些不使用的方法的改变所带来的问题。2、简述工厂方法模式的定义和角色答:1概念定义一个创立产品对象的工厂接口,让子类决定实例化哪个子类24个角色:抽象工厂Creator角色:该角色是工厂方法模式的核心,与应用系统无关,任何在创立对象的工厂类必须实现这个接口。具体工厂Concrete Creator角色:该角色实现了抽象工厂接口,含有与应用密切相关的逻辑,并且受到应用程序的调用以创立产品对象。多个具体工厂分别对应生产多个具体产品。抽象产品Product角色:该角色负责定义产品的共性,实现对产品最抽象的定义。具体产品Concrete Product角色:该角色实现抽象产品角色所声明的接口,工厂方法模式所创立的每一个对象都是某个具体产品角色的实例。3、简述模板方法模式的定义和角色和优点答:1概念定义一个操作中的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的构造即可重定义该算法的某些特定步骤2模板方法角色:抽象模板Abstract Template角色:该角色定义一个或多个抽象操作,以便让子类实现;这些抽象操作是根本操作,是一个顶级逻辑的组成步骤。还需要定义并实现一个或几个模板方法,实现对根本方法的调度,完成固定的逻辑。具体模板Concrete Template角色:该角色实现抽象模板中定义的一个或多个抽象方法,每一个抽象模板角色都可以有任意多个具体模板角色与之对应,分别给出这些抽象方法的不同实现,从而使得顶级逻辑的实现各不一样。4、简述代理模式的定义和角色答:1定义:为其他对象提供一种代理以控制对这个对象的访问。2代理模式3个角色:抽象主题Subject角色:该角色是真实主题和代理主题的共同接口,以便在任何可以使用真实主题的地方都可以使用代理主题。代理主题Proxy Subject角色:也叫做委托类、代理类,该角色负责控制对真实主题的引用,负责在需要的时候创立或删除真实主题对象,并且在真实主题角色处理完毕前后做预处理和蔼后处理工作。真实主题Real Subject角色:该角色也叫做被委托角色、被代理角色,是业务逻辑的具体执行者。5、简述中介者模式的定义和角色含义。答:1定义:用一个中介对象封装一系列对象同事的交互,中介者使各对象不需要显式的相互作用,从而使其耦合松散,而且可以独立的改变它们之间的交互。2中介者模式角色:抽象中介者Mediator角色:该角色定义出同事对象到中介者对象的统一接口,用于各同事角色之间的通信。具体中介者Concrete Mediator角色:该角色实现抽象中介者,它依赖于各个同事角色,并通过协调各同事角色实现协作行为。抽象同事Colleague角色:该角色定义出中介者到同事对象的接口,同事对象只知道中介者而不知道其余的同事对象。具体同事Concrete Colleague角色:该角色实现抽象同事类,每一个具体同事类都清楚自己在小X围内的行为,而不知道大X围内的目的。6、简述策略模式的定义和角色含义。答:1定义:定义一组算法,将每个算法都封装起来,并且使它们之间可以互换。2策略模式角色:环境Context角色:该角色也叫上下文角色,起到承上启下的作用,屏蔽高层模块对策略、算法的直接访问,它持有一个Strategy类的引用。抽象策略Strategy角色:该角色对策略、算法进展抽象,通常定义每个策略或算法必须具有的方法和属性。具体策略Concrete Strategy角色:该角色实现抽象策略中的具体操作,含有具体的算法。7、简述设计模式的10要素。答:1模式名称,简洁反映设计模式的问题、解决方案和效果2问题,解释了设计问题和问题的前因后果3环境或初始环境,说明模式的使用X围,也叫前提条件4解决方案,描述模式设计的组成局部,各局部职责和协作方式5效果,描述使用效果和使用模式应权衡的问题6举例,使用一个或几个应用例如说明特定的环境、以及模式如何应用到环境中,最终得到什么效果7末态环境,模式应用到系统之后的状态,包括好结果和坏结果,以及新状态含有的其他问题8推理,推理解释模式的步骤、规那么9其他有关模式,描述现有系统中此模式与其他模式的动态和静态关系。如相互依赖或替换。10应用。8、简述依赖倒置原那么答:包括三层含义: 高层模块不应该依赖底层模块,两者都依赖其抽象抽象不依赖细节细节应该依赖于抽象依赖倒置原那么在Java中的表达:模块间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过接口或抽象类产生接口或抽象类不依赖于实现类实现类依赖于接口或抽象类优点: 依赖倒置原那么可以减少类间的耦合性,提高系统的稳定性,降低并行开发引起的风险,提高代码的可读性和可维护性9、简述中介者模式的各个组成角色的作用答:中介者模式包括4个角色:抽象中介者Mediator角色:定义出同事对象到中介者对象的统一接口,用于各同事角色之间的通信。具体中介者Concrete Mediator角色:实现抽象中介者角色,依赖于各个同事角色,并协调各同事角色实现协作行为。抽象同事Colleague角色:定义中介者到同事对象的接口。具体同事Concrete Colleague角色:实现抽象同事类,每一个具体同事类只清楚自己在小X围内的行为,而不知道大X围内的目的。四、综合编程题1、课本第215页,【例如8.3】2、课本第222页,【例如8.6】3、分析下面的类图,说明该应用使用了什么设计模式,给出其定义,说明这种设计模式主要涉及哪几个角色,各有什么作用。答:是装饰模式,定义为动态的给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更为灵活。装饰模式的4个角色:l 抽象构件ponent角色:用于规X需要装饰的对象原始对象。l 具体构件Concrete ponent角色:实现抽象构件接口,定义一个需要装饰的原始类。l 装饰Decorator角色:持有一个构件对象的实例,并定义一个与抽象构件接口一致的接口。l 具体装饰Concrete Decorator角色:负责对构件对象进展装饰。2、依据类图写出程序实现代码。见课本第76页,【例如4.2】8 / 8
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


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

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


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