《2022年面向对象设计原则 .docx》由会员分享,可在线阅读,更多相关《2022年面向对象设计原则 .docx(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品_精品资料_一、挑选题1. 开放-关闭原就的含义是一个软件实体a.A应当对扩绽开放,对修改关闭B应当对修改开放,对扩展关闭C应当对继承开放,对修改关闭D以上都不对2. 以下属于面对对象设计基本原就的是 cA继承 B封装 C里氏代换 D都不是3. 对于违反里式代换原就的两个类,可以采纳的候选解决方案错误的选项是: dA. 创建一个新的抽象类C,作为两个详细类的超类, 将 A 和 B 共同的行为移动到C 中,从而解决 A 和 B 行为不完全一样的问题.B. 将 B 到 A 的继承关系改组成委派关系.C. 区分是 “ IS-a仍是” ” Has a”.假如是 “ Is-a,可”以使用继承关系,假
2、如是 ” Has a”应当改成委派关系D. 以上方案都错误4. 关于继承表述错误的选项是: dA. 继承是一种通过扩展一个已有对象的实现,从而获得新功能的复用方法.B. 泛化类超类可以显式的捕捉那些公共的属性和方法.特别类子类就通过附加属性和方法来进行实现的扩展.C. 破坏了封装性,由于这会将父类的实现细节暴露给子类.D. 继承本质上是 “白盒复用 ”,对父类的修改,不会影响到子类.5. 对于依靠倒转的表述错误的选项是A. 依靠于抽象而不依靠于详细,也就是针对接口编程.B. 依靠倒转的接口并非语法意义上的接口,而是,一个类对其他对象进行调用时,所知道的方法集合.C. 从选项 B 的角度论述,一
3、个对象可以有多个接口.D. 实现了同一接口的对象,可以在运行期间,顺当的进行替换.而且不必知道所使用的对象是哪个实现类的实例.6. 要依靠于抽象,不要依靠于详细.即针对接口编程,不要针对实现编程,是D的表述.A.开-闭原就 B.接口隔离原就 C.里氏代换原就 D.依靠倒转原就7. 依据设计的基本原就,程序开发中应优先使用的是a关系实现复用.A, 组合委派 B.继承 C 创建 D.以上都不对8. “不要和生疏人说话” 是D原就的通俗表述.A.接口隔离 B.里氏代换 C.依靠倒转 D.迪米特法就9. 面对对象的六条基本原就包括:开闭原就, 里式替换原就, 合成聚合原就、 依靠倒转、 迪米特法就,以
4、及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. 关于设计原就以
5、下说法错误的选项是aA 依靠倒置原就是指高层模块应当依靠于底层模块,两者都依靠于详细的实现B 里氏替换是说子类的行为必需与父类的行为保持一样C 单一职责原就是说只有一个可以让其转变的缘由D 迪米特法就的核心就是一个对象对其他对象有最少的明白二、问答题1. 请从接口隔离原就动身分析一下“看人下菜碟儿 ”这个说法的意义?看客人是谁再供应不同档次的菜.从接口隔离原就的角度动身,依据客户需要的不同, 而为不同的客户供应不同的服务2. 在设计原就中,依靠倒置原就的主要内容是什么?A.高层次的模块不应当依靠于低层次的模块,他们都应当依靠于抽象.B.抽象不应当依靠于详细实现,详细实现应当依靠于抽象.3. 请
6、举例说明开放 -关闭原就是如何应用的,并画出相应类图.4. 请说明下面的一段代码,违反了什么设计原就,应如何修改.答:违反了单一职责原就可编辑资料 - - - 欢迎下载精品_精品资料_5. 请优化下面的设计方案,使其能够不依靠于详细实现,并说明运用了什么设计原就.答:依靠倒置原就6.7.请说明策略模式实际上应用了什么设计原就,并简洁描述该原就的内容.请指出以下图在设计上违反了什么原就,并给出优化方案.答:接口隔离原就可编辑资料 - - - 欢迎下载精品_精品资料_8. 请指出以下图违反了什么设计原就,并简洁描述该原就的内容.答:依靠倒置原就9. 请指出以下图违反了什么设计原就,并简洁描述该原就
7、的内容.可编辑资料 - - - 欢迎下载精品_精品资料_答迪米特法就10. 企鹅 Penguin有皮毛 hasFeather ,有翅膀 hasWings,会下蛋 layEgg,但是不会飞行 fly.因此企鹅是一种特别的鸟类Bird.请认真查看下面的设计方案,请指出这 个方案违反了什么设计原就?请给出修改后的方案.Bird-hasFeather-hasWings+layEgg+flyvoid fly可编辑资料 - - - 欢迎下载精品_精品资料_/do nothingPenguin+fly可编辑资料 - - - 欢迎下载精品_精品资料_里氏替换原就LSP把 bird 中 fly 方法去掉11.
8、Sunny 软件公司开发的CRM 系统原先可以显示两种类型的图表,如饼状图PieChart可编辑资料 - - - 欢迎下载精品_精品资料_和柱状图 BarChart,后来用户期望系统能够支持更多种类的图表显示方式,例如增加LineChart,我们应当如何设计这个方案?请给出这个方案的类图,并用文字说明该方案的合理性.通过抽象化的方式对系统进行重构,使之增加新的图表类时无须修改源代码,使之满意开闭原就.(1) 增加一个抽象图表类AbstractChart ,将各种详细图表类作为其子类.(2) ChartDisplay 类针对抽象图表类进行编程,由客户端来打算使用哪种详细图表.可编辑资料 - - - 欢迎下载