面向对象设计与编程中的关键概念与模式
1. 类关联关系
1.1 双向导航关联
关联的导航性可以是双向的。在这种情况下,两个类之间的关联实线两端可以都有箭头,也可以都没有箭头。
1.2 整体 - 部分关系关联
当两个类存在整体 - 部分关系时,即一个类包含另一个类,有以下两种关联类型:
- 组合(Composition) :表示整体类(Class A)和部分类(Class B)之间有很强的所有权关系。部分类不能独立于整体类而有意义地存在。例如,订单项(LineItem)是订单(Order)的一部分,没有订单,订单项就不能存在。
- 聚合(Aggregation) :是一种较弱的组合形式。整体类比部分类更重要,但与组合不同的是,部分类可以独立于整体类而有意义地存在。例如,球员(Player)是球队(Team)的一部分,球员可以属于多个球队,当一个球队解散时,球员仍然存在。
下面是这两种关系的表格对比:
| 关联类型 | 所有权关系 | 部分类独立性 | 示例 |
| ---- | ---- | ---- | ---- |
| 组合 | 强 | 不能独立存在 | 订单项 - 订单 |
| 聚合 | 弱 | 可以独立存在 | 球员 - 球队 |
对应的 mermaid 流程图如下:
graph LR
classDef process fill:#E5F6FF,stroke:#73A6FF,stro
超级会员免费看
订阅专栏 解锁全文
2271

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



