面向对象编程中的关系与继承机制解析
1. 类关联中的角色
在给定的关联中,每个参与类都有一个角色。例如,在 “教授指导学生” 这一关联中,教授的角色是 “导师”,学生的角色是 “被指导者”。不过,我们只会在有助于明确抽象概念时,才为参与关联的对象角色命名。像 “学生选课” 这种关联,就没必要为学生和课程两端的角色命名,因为这些角色名对抽象概念的清晰度提升不大。
2. 多重性
对于类 A 和类 B 之间的给定关联类型 X,多重性指的是与类型 B 的一个给定实例相关联的类型 A 的对象数量。例如,一个学生可以参加多门课程,但一个学生只有一位指导教授。多重性有三种基本类型:一对一、一对多和多对多。
- 一对一(1:1) :在一对一关联中,类 A 的一个实例恰好与类 B 的一个实例相关联,反之亦然。例如,一个学生恰好有一份成绩单,一份成绩单也恰好属于一个学生;一位教授恰好主持一个系,一个系也恰好有一位教授担任系主任。我们还可以进一步规定关联两端类的参与是可选的还是强制的。比如,一位教授可以选择主持一个系,但一个系必须有一位教授担任系主任。这种修订后的关联更符合现实情况,因为并非每个教授都是系主任,但如果一位教授是系主任,那他只能主持一个系。
- 一对多(1:m) :在一对多关联中,类 A 的一个实例可以与类 B 的多个实例以特定方式相关联,但从类 B 的一个实例角度看,只能与类 A 的一个实例相关联。例如,一个系可以雇佣多位教授,但一位教授只能为一个系工作;一位教授可以指导多位学生,但一个学生只能有一位指导教授。这里的 “多个” 可以理解为 “零个或多个(可选)” 或 “一个或多个(强制)
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



