- 2
- 0
- 约3.24千字
- 约 78页
- 2023-12-15 发布于湖北
- 举报
第11章;本章将介绍建立健壮的类层次结构应遵循的两项重要原则:类型一致性和闭合行为。;11.1 类型一致性与闭合行为;11.1.1 类与类型;11.1.2 类型一致性原则;在完善的面向对象设计中,每个类的类型必须与其超类相一致,即类或子类的继承层次结构必须遵循类型一致性原则。;为了做到每个子类的类型能够真正可信地与其超类的类型一致,引入类型一致性的两个重要子原则:抗变性与协变性。;必须保证满足下列三个操作限制条件:
每个超类的操作必须与其子类中一个操作相对应,它们具有相同的名字和函数原则。
每个子类操作的前置条件不应强于其超类操作的前置条件,这就是抗变性原则。
每个子类操作的后置条件至少要和其相应超类操作的后置条件一样强,这就是协变性原则。;类型一致性原则要求子类S必须为类T的真子类型,并且满足下列六个限制条件(前两个条件适用于所有类,后四个条件适用于单个操作):
S的状态空间必须与T的状态空间一致。
在S和T的共享空间中,S的状态空间必须等同于或位于T的状态空间之内。;(3)S.op必须与T.op名称相同。
(4)S.op的形式函数原型的参数必须与 T.op的形式函数原型的参数表一一对应。
(5)S.op的前置条件必须等同于或弱于T.op的前置条件。
(6)S.op的后置条件必须等同于或强于T.op的后置条件。;11.1.3 闭合行为原则;如果你发送消息并作一般(超类)条件假设,则目标对象可能拒绝该消息或不作任何操作便返回。如果出现该问题,则在发送消息前,可以采取下列步骤:;检查运行时的目标类。
限制与目标有关的变量的多态性。
设计消息时假设目标是有关层次结构中最特殊、最底层的类--即对其行为具有最高限制条件的类。;11.2 封装与共生性;11.2.1 封装结构;制定标准管理各个封装级别之间的相互作用。表11-1概括了一些传统结构设计标准。该表显示了应用于每一对封装级别的相应标准。;表11-1;表11-2是表11-1的扩展,其中包括了2级封装,所以五个框的内容需要去命名和描述。;表11-2;11.2.2 共生性;静态的共生性有以下几种方式 :
类型或类的共生性
名称共生性
常量共生性
算法共生性
位置共生性;动态共生性是一种??赖于运行代码的执行模式:对象。动态共生性同样具有很多形式:
执行共生性
数值共生性
同步共生性
标识共生性;11.2.3 面向对象系统中共生性的滥用;11.2.4 共生性的术语;11.3 领域、依附集和内聚;11.3.1 对象类的领域;11.3.2 依附集;依附集表示
(1)可以用图形方法说明依附集。用一个箭头来表示一种直接类引用。如图11-1所示,类A的直接引用是A1、A2、A3。因而类A的直接依附集就是3。;图11-1;(2)图11-2表示的是类A的间接类引用集。你会发现类A的间接依附集是通过计算这个图表中所有的类而得到的,也就是说,在树状视图中所有类的总和,这些类的根节点都是A并且叶子节点都是底部的基础类(用字母F等表示的,如F1)。;图11-2;依附集的使用。依附集提供了一种衡量类的复杂程度的方法。类是处于基础领域之上有多高的程度。因而,处于高级别领域的类具有较高的间接依附集,处于低级别的类则具有较低的间接依附集。;Demeter规则 。一个Demeter规则的惯用语是如下描述的:
假设A的一个对象为obj,并且假设定义对象obj的所有操作运算为op,那么在执行op操作过程中,一条消息的每一个目的地一定是下面的对象之一。
对象obj本身是一个特别的例子,self和super(在smalltalk工具中),this(在C++和Java语言中),或者Current(在Eiffel工具中)。;在op标记符范围内通过一个参数引用一个对象。
通过对象obj的一个变量来引用一个对象。
通过操作运算ob创建的一个对象。
通过一个全局变量引用的一个对象。;11.3.3 类的内聚:一个类和它的特性;混合事例型内聚定义:一个混合事例型内聚的类具有这样的特性:对于类的对象来说这些特性是未被定义的。;混合领域型内聚的定义:一个混合领域型内聚的类包含这样的一个元素,这个元素是一个不同领域的非本征类的直接依附集。;混合角色型内聚的定义:一个具有混合角色型的类A包含了这样一个元素,这个元素直接依附集于与A同一领域的类的一个非本征类。;11.4 继承与多态性的危险性;11.4.1 继承的滥用;11.4.2 错误的聚集;图11-3;11.4.3 倒置的层次结构;图11-4;11.4.4 混淆类及其实例;图11-5;图11-6;11.4.5 误用;图11-7;问题出在Room从Cuboid继承的行为上,该行为来源于Cuboid的操作,如stretch、rotate等,由于该行为对于Room不合法,则必须在Room中覆盖
您可能关注的文档
- 企业改制与上市_2.pptx
- [工作范文]党史知识竞答-.pptx
- 国家职业资格培训的教程.pptx
- 【精品】国家职业资格培训教程——职业道德.pptx
- 城市轨道交通车辆 城市轨道交通车辆 单元二城市轨道交通车辆检修工艺基础 (1).pptx
- 2025年营养师考试《公共》模拟卷.docx
- 2025年英语六级《听力专项》模拟试卷(七).docx
- 2025年西藏公务员考试C类模拟卷.docx
- 2025年营养师《公共营养学》专项练习.docx
- 2025年船舶工程师《船舶设计》历年真题.docx
- 城市轨道交通客运服务心理学-教案-7-心理过程.doc
- 城市轨道交通客运服务心理学-教案-8-个性心理.doc
- 古诗鉴赏阅读之表达技巧应用-2024年高考语文一轮复习知识点闯关全覆盖(新高考专用)(解析版).pdf
- 2025年英语六级《听力与写作》专项训练卷(真题解析).docx
- 2025年行测考试冲刺模拟卷.docx
- 城市轨道交通客运服务心理学-教案-9-行为和语言.doc
- 城市轨道交通客运服务心理学-教案-10-心理现象和城市轨道交通的行业属性.doc
- 2025年英语六级《听力》模拟训练卷.docx
- 2023年《工程计价》试题含答案(OCR).pdf
- 2025年行测《判断推理》专项练习卷.docx
原创力文档

文档评论(0)