引用属性
让我们简要介绍一下引用属性。
什么是引用属性?
如果一个对象类型或类的属性值指向另一个类型或相同类型的对象,则该属性被称为引用属性。例如,下面所示的 Committee 类具有一个名为 chair 的引用属性,其值为指向 ClubMember 类型对象的引用。
关联
关联用于描述对象类型之间的关系。例如,Committee -拥有- ClubMember -作为- chair 这一关联,通过连接线表示,用于分类如下关系:FinanceCommittee -拥有- PeterMiller -作为- chair、RecruitmentCommittee -拥有- SusanSmith -作为- chair、AdvisoryCommittee -拥有- SarahAnderson -作为- chair。其中,PeterMiller、SusanSmith 和 SarahAnderson 是 ClubMember 类型的对象,而 FinanceCommittee、RecruitmentCommittee 和 AdvisoryCommittee 是 Committee 类型的对象。一个关联作为一组关系,可以表示为如下表格:
Committee -拥有- ClubMember -作为- chair
| 财务委员会 | Peter Miller |
|---|---|
| 招聘委员会 | Susan Smith |
| 咨询委员会 | Sarah Anderson |
引用属性对应一种特殊的关联形式,即单向二元关联。虽然二元关联通常不具方向性,但引用属性表示的是从定义该属性的类(域类)指向其值类型(范围类)的有向二元关联。
一般来说,关联是涉及两个或更多对象类型的联系类型。二元关联是介于两个对象类型之间的关联。在本课程中,我们仅讨论二元关联。为简便起见,当我们说“关联”时,实际上指的是“二元关联”。
尽管具体的关系实例(如 FinanceCommittee -拥有- PeterMiller -作为- chair)在业务沟通和信息系统中是重要的信息单元,但关联本身(如 Committee -拥有- ClubMember -作为- chair)是信息模型中的关键组成部分。因此,软件应用必须正确实现这些关联,通常作为 MVC 架构中模型层的一部分。然而,许多应用程序开发框架缺乏对关联处理的必要支持。
在数学中,关联以抽象方式被形式化为统一元组的集合,称为关系。在经典的信息化建模方法——实体-关系(ER)模型中,对象被称为实体,关联被称为关系类型。统一建模语言(UML)包含 UML 类图语言用于信息建模。在 UML 中,对象类型称为类,关系类型称为关联,具体的关系实例称为链接。这些术语总结如下:
术语汇总
| 我们推荐的术语 | UML | ER 图 | 数学 |
|---|---|---|---|
| 对象 | 对象 | 实体 | 个体 |
| 对象类型(类) | 类 | 实体型 | 一元关系 |
| 关系 | 链接 | 关系 | 关系 |
| 关联(关系类型) | 关联 | 关系类型 | 关系 |
| 函数型关联 | 一对一、多对一或一对多关系类型 | 函数 |
我们首先讨论引用属性,它们在一种无关联类模型中隐式表示单向二元关联。无关联类模型是指不包含任何显式关联元素的模型。