《JAVA设计模式》期末考试复习资料_第1页
《JAVA设计模式》期末考试复习资料_第2页
《JAVA设计模式》期末考试复习资料_第3页
《JAVA设计模式》期末考试复习资料_第4页
《JAVA设计模式》期末考试复习资料_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

第 1 页 共 8 页 JAVA JAVA 设计模式设计模式 复习资料复习资料 一 单项选择题一 单项选择题 1 设计模式起源于 A 机械设计B 建筑工程设计 C 水利工程设计D 工业电力化设计 2 不要和陌生人说话 是 原则的通俗表述 A 接口隔离 B 里氏替换 C 依赖倒置 D 迪米特 3 目前常见的设计模式主要有 种 A 23 B 21 C 32D 28 4 以下关于单一职责原则的叙述不正确的是 A 单一职责原则的英文名称是 Single Responsibility Principle B 单一职责原则要求一个类只有一个职责 C 单一职责原则有利于对象的稳定 降低类的复杂性 D 单一职责原则提高了类之间的耦合性 5 以下关于依赖倒置原则的叙述不正确的是 A 依赖倒置原则的简称是 DIP B 高层模块不依赖于低层模块 低层模块依赖于高层模块 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 定义一个用于创建对象的接口 让子类决定实例化哪一个类 2 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 以下哪个用来描述建造者模式 3 A 定义一个用于创建对象的接口 让子类决定实例化哪一个类 B 保证一个类仅有一个实例 并提供一个访问它的全局访问点 C 将一个复杂对象的构建与它的表示分离 使得同样的构建过程可以创建不同的表示 D 运用共享技术有效地支持大量细粒度的对象 19 以下哪个不属于设计模式的要素 A 模式名称B 问题C 因素D 环境 20 以下不属于结构型模式的是 A 代理模式B 工厂方法模式C 适配器模式D 享元模式 1 5 BDADB 6 10 DCBBC11 15 AADBA16 20 BCCCB 21 关于模式应用场景 在以下哪种情况适合使用组合模式 A 你想使用一个已经存在的类 而它的接口不符合你的需求 B 当一个类的实例只能有几个不同状态组合中的一种时 C 你想表示对象的部分 整体层次结构 D 一个对象的行为取决于它的状态 并且它必须在运行时根据状态改变行为 22 Java 的异常处理机制可理解为哪一种行为模式 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 应当对扩展开放 对修改关闭 4 B 应当对修改开放 对扩展关闭 C 应当对继承开放 对修改关闭 D 以上都不对 30 对于违反里氏替换原则的两个类 可以采用的候选解决方案错误的是 A 创建一个新的抽象类 C 作为两个具体类的超类 将 A 和 B 共同的行为移动到 C 中 从而解 决 A 和 B 行为不完全一致的问题 B 将 B 到 A 的继承关系改组成委派关系 C 区分是 Is a 还是 Has a 如果是 Is a 可以使用继承关系 如果是 Has a 应该改 成委派关系 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 30 DBAAD 31 35 ADADA 二 填空题二 填空题 1 设计模式分为 创建型 行为型 结构型 三大类型 2 设计模式中的六个主要原则主要包括 单一职责原则 依赖倒置原则 里氏替换原则 接口隔离原则 迪米特法则和开闭原则 3 设计模式中 对迪米特法则进行应用的设计模式有外观模式和 中介者模式 4 装饰模式 模式用于动态地给一个对象添加一些额外的职责 5 外观模式 模式要求一个子系统的外表与其内部的通信必须通过一个统一的对象进行 6 桥梁模式 模式的定义是将抽象和现实解耦 使得两者可以独立地变化 5 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 概念 定义一个创建产品对象的工厂接口 让子类决定实例化哪个子类 2 4 个角色 抽象工厂 Creator 角色 该角色是工厂方法模式的核心 与应用系统无关 任何在创建对象的 工厂类必须实现这个接口 具体工厂 Concrete Creator 角色 该角色实现了抽象工厂接口 含有与应用密切相关的逻辑 并且受到应用程序的调用以创建产品对象 多个具体工厂分别对应生产多个具体产品 抽象产品 Product 角色 该角色负责定义产品的共性 实现对产品最抽象的定义 具体产品 Concrete Product 角色 该角色实现抽象产品角色所声明的接口 工厂方法模式所 创建的每一个对象都是某个具体产品角色的实例 6 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 角色 该角色实现抽象同事类 每一个具体同事类都清楚自己 在小范围内的行为 而不知道大范围内的目的 6 简述策略模式的定义和角色含义 答 1 定义 定义一组算法 将每个算法都封装起来 并且使它们之间可以互换 2 策略模式角色 环境 Context 角色 该角色也叫上下文角色 起到承上启下的作用 屏蔽高层模块对策略 算法的直接访问 它持有一个 Strategy 类的引用 抽象策略 Strategy 角色 该角色对策略 算法进行抽象 通常定义每个策略或算法必须具有 的方法和属性 具体策略 Concrete Strategy 角色 该角色实现抽象策略中的具体操作 含有具体的算法 7 7 简述设计模式的 10 要素 答 1 模式名称 简洁反映设计模式的问题 解决方案和效果 2 问题 解释了设计问题和问题的前因后果 3 环境或初始环境 说明模式的使用范围 也叫前提条件 4 解决方案 描述模式设计的组成部分 各部分职责和协作方式 5 效果 描述使用效果和使用模式应权衡的问题 6 举例 使用一个或几个应用示例说明特定的环境 以及模式如何应用到环境中 最终得 到什么效果 7 末态环境 模式应用到系统之后的状态 包括好结果和坏结果 以及新状态含有的其他 问题 8 推理 推理解释模式的步骤 规则 9 其他有关模式 描述现有系统中此模式与其他模式的动态和静态关系 如相互依赖或替 换 10 已知应用 8 简述依赖倒置原则 答 包括三层含义 高层模块不应该依赖底层模块 两者都依赖其抽象 抽象不依赖细节 细节应该依赖于抽象 依赖倒置原则在 Java 中的体现 模块间的依

温馨提示

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

评论

0/150

提交评论