面向对象设计原则_第1页
面向对象设计原则_第2页
面向对象设计原则_第3页
面向对象设计原则_第4页
面向对象设计原则_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

一 选择题 1 开放 关闭原则的含义是一个软件实体 a A 应当对扩展开放 对修改关闭 B 应当对修改开放 对扩展关闭 C 应当对继承开放 对修改关闭 D 以上都不对 2 下列属于面向对象设计基本原则的是 c A 继承 B 封装 C 里氏代换 D 都不是 3 对于违反里式代换原则的两个类 可以采用的候选解决方案错误的是 d A 创建一个新的抽象类 C 作为两个具体类的超类 将 A 和 B 共同的行为移动到 C 中 从而 解决 A 和 B 行为不完全一致的问题 B 将 B 到 A 的继承关系改组成委派关系 C 区分是 IS a 还是 Has a 如果是 Is a 可以使用继承关系 如果是 Has a 应该改成 委派关系 D 以上方案都错误 4 关于继承表述错误的是 d A 继承是一种通过扩展一个已有对象的实现 从而获得新功能的复用方法 B 泛化类 超类 可以显式地捕获那些公共的属性和方法 特殊类 子类 则通过附加属 性和方法来进行实现的扩展 C 破坏了封装性 因为这会将父类的实现细节暴露给子类 D 继承本质上是 白盒复用 对父类的修改 不会影响到子类 5 对于依赖倒转的表述错误的是 A 依赖于抽象而不依赖于具体 也就是针对接口编程 B 依赖倒转的接口并非语法意义上的接口 而是 一个类对其他对象进行调用时 所知道 的方法集合 C 从选项 B 的角度论述 一个对象可以有多个接口 D 实现了同一接口的对象 可以在运行期间 顺利地进行替换 而且不必知道所使用的对 象是哪个实现类的实例 6 要依赖于抽象 不要依赖于具体 即针对接口编程 不要针对实现编程 是 D 的表 述 A 开 闭原则 B 接口隔离原则 C 里氏代换原则 D 依赖倒转原则 7 依据设计的基本原则 程序开发中应优先使用的是 a 关系实现复用 A 组合委派 B 继承 C 创建 D 以上都不对 8 不要和陌生人说话 是 D 原则的通俗表述 A 接口隔离 B 里氏代换 C 依赖倒转 D 迪米特法则 9 面向对象的六条基本原则包括 开闭原则 里式替换原则 合成聚合原则 依赖倒转 迪米特法则 以及 b A 单一职责原则 用户视角原则 B 单一职责原则 接口隔离原则 C 接口隔离原则 易用性原则 D 接口隔离原则 用户视角原则 10 适配器模式 分为类的适配器和 a 的适配器两种实现 A 对象 B 用例 C 接口 D 抽象类 11 面向对象系统中功能复用的两种最常用技术是 a A 对象组合和类继承 B 复制和粘贴 C 类继承和抽取方法 D 对象组合和抽取方法 12 对象适配器模式是 a 原则的典型应用 A 合成聚合复用原则 B 里式代换原则 C 依赖倒转原则 D 迪米特法则 13 依据设计模式思想 程序开发中应优先使用 a 关系实现复用 A 组合 B 继承 C 创建 D 扩展 14 关于设计原则以下说法错误的是 a A 依赖倒置原则是指高层模块应该依赖于底层模块 两者都依赖于具体的实现 B 里氏替换是说子类的行为必须与父类的行为保持一致 C 单一职责原则是说只有一个可以让其改变的原因 D 迪米特法则的核心就是一个对象对其他对象有最少的了解 二 问答题 1 请从接口隔离原则出发分析一下 看人下菜碟儿 这个说法的意义 看客人是谁再提供不同档次的菜 从接口隔离原则的角度出发 根据客户需要的不同 而 为不同的客户提供不同的服务 2 在设计原则中 依赖倒置原则的主要内容是什么 A 高层次的模块不应该依赖于低层次的模块 他们都应该依赖于抽象 B 抽象不应该依赖于具体实现 具体实现应该依赖于抽象 3 请举例说明开放 关闭原则是如何应用的 并画出相应类图 4 请说明下面的一段代码 违反了什么设计原则 应如何修改 答 违反了单一职责原则 5 请优化下面的设计方案 使其能够不依赖于具体实现 并说明运用了什么设计原则 答 依赖倒置原则 6 请说明策略模式实际上应用了什么设计原则 并简单描述该原则的内容 7 请指出下图在设计上违反了什么原则 并给出优化方案 答 接口隔离原则答 接口隔离原则 8 请指出下图违反了什么设计原则 并简单描述该原则的内容 答 依赖倒置原则答 依赖倒置原则 9 请指出下图违反了什么设计原则 并简单描述该原则的内容 答迪米特法则 10 企鹅 Penguin 有皮毛 hasFeather 有翅膀 hasWings 会下蛋 layEgg 但是 不会飞行 fly 因此企鹅是一种特殊的鸟类 Bird 请仔细查看下面的设计方案 请指 出这个方案违反了什么设计原则 请给出修改后的方案 Bird hasFeather hasWings layEgg fly Penguin fly void fly do nothing 里氏替换原则里氏替换原则 LSP 把把 bird 中中 fly 方法去掉 方法去掉 11 Sunny 软件公司开发的 CRM 系统原先可以显示两种类型的图表 如饼状图 PieChart 和柱状图 BarChart 后来用户希望系统能够支持更多种类的图表显示方式 例如增加 LineChart 我们应该如何设计这个方案 请给出这个方案的类图 并用文字说明 该方案的合理性 通过抽象化的方式对系统进行重构 使之增加新的图表类时无须修改源代码 使之满足开通过抽象化的方式对系统进行重构 使之增加新的图表类时无须修改源代码 使之满足开 闭原则 闭原则 1 增加一个抽象图表类增加一个抽象

温馨提示

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

评论

0/150

提交评论