审查与调整 (1)问题域是否需要这样的分类?(例:书善本书) (2)系统责任是否需要这样的分类?(例:职员-本市职员 (3)是否符合分类学的常识?(用“ is a kind of”去套) 汽车 运输工具 运输工具 发动机 发动机 发动机 载重量 载重量 载重量 速度 速度 速度 运输 运输 或运输 飞机 汽车 飞机 飞行高度 飞行高度 飞行高度 自动导航 自动导航 自动导航 (4)是否构成了继承关系?(确实继承了一些属性或服务
(1)问题域是否需要这样的分类?(例:书—善本书) (2)系统责任是否需要这样的分类?(例:职员—本市职员) (3)是否符合分类学的常识?(用“is a kind of ”去套) 飞机 飞行高度 ······ 自动导航 ······ × 汽车 发动机 载重量 速度 ······ 运输 ······ 运输工具 发动机 载重量 速度 ······ 飞机 飞行高度 ······ 自动导航 ······ 汽车 ······ ······ 运输工具 发动机 载重量 速度 ······ 飞机 飞行高度 ······ 自动导航 ······ 运输 ······ 运输 或 ······ 审查与调整 (4)是否构成了继承关系?(确实继承了一些属性或服务 )
一般-特殊结构的简化 (1)取消没有特殊性的特殊类 (2)增加属性简化一般-特殊结构 (3)取消用途单一的一般类,减少继承层次 般类存在的理由: 有两个或两个上以上的特殊类 需要用它创建对象实例 有助于软件复用
一般-特殊结构的简化 (1)取消没有特殊性的特殊类 (2)增加属性简化一般-特殊结构 (3)取消用途单一的一般类,减少继承层次 一般类存在的理由: ·有两个或两个上以上的特殊类 ·需要用它创建对象实例 ·有助于软件复用
62整体-部分结构 概念:整体对象、部分对象、聚合、整体-部分结构 a part of”或“hasa” 整体-部分关系是对象实例之间的关系 说“对象a是对象b的组成部分”—可以 说“类A是类B的组成部分”—不妥 说“类B和类A之间的整体-部分关系 是指它们的对象实例存在整体-部分关系 定义:整体-部分结构是把一组具有整体-部分关系的 类组织在一起的结构。它是一个以类为结点,以整 体-部分关系为边的连通的有向图 同义词:组装结构( composition structure) 区别:紧密、固定的关系和松散、灵活的关系
概念:整体对象、部分对象、聚合、整体-部分结构 “a part of”或“has a” 整体-部分关系是对象实例之间的关系 说“对象a是对象b的组成部分”——可以 说“类A是类B的组成部分”——不妥 说“类B和类A之间的整体-部分关系”, 是指它们的对象实例存在整体-部分关系 定义:整体-部分结构是把一组具有整体-部分关系的 类组织在一起的结构。它是一个以类为结点,以整 体-部分关系为边的连通的有向图。 同义词:组装结构(composition structure) 区别:紧密、固定的关系 和 松散、灵活的关系 6.2 整体-部分结构
表示法 连接符: 例子: 汽车 整体对象类 多重性: 一对 4,6 对多 多对多 发动机 车轮 部分对象类 多重性表示: 固定的数√单个数 不定的数六数对
整体对象类 部分对象类 m n 连接符: 表示法 汽 车 发动机 车 轮 1 4,6 0,1 0,1 例子: 多重性: 一对一 一对多 多对多 多重性表示: 固定的数 单个数 不定的数 数对
如何发现整体-部分结构 考察: (1)物理上的整体事物和它的组成部分 例:机器、设备和它的零部件 (2)组织机构和它的下级组织及部分 例:公司与子公司、部门 (3)团体(组织)与成员 例:公司与职员 (4)一种事物在空间上包容其它事物 例:生产车间与机器 (5)抽象事物的整体与部分 例:学科与分支学科、法律与法律条款 (6)具体事物和它的某个抽象方面 例:人员与身份、履历
如何发现整体-部分结构 考察: (1)物理上的整体事物和它的组成部分 例:机器、设备和它的零部件 (2)组织机构和它的下级组织及部分 例:公司与子公司、部门 (3)团体(组织)与成员 例:公司与职员 (4)一种事物在空间上包容其它事物 例:生产车间与机器 (5)抽象事物的整体与部分 例:学科与分支学科、法律与法律条款 ( 6)具体事物和它的某个抽象方面 例:人员与身份、履历