Object 关联关系中的角色名称
来自UML圣经,关于角色: 角色:角色名称解释对象如何参与关系。 每个对象都需要保留对关联对象的引用。引用保存在对象内的属性值中。当只有一个关联时,则只有一个属性包含引用Object 关联关系中的角色名称,object,associations,roles,uml,Object,Associations,Roles,Uml,来自UML圣经,关于角色: 角色:角色名称解释对象如何参与关系。 每个对象都需要保留对关联对象的引用。引用保存在对象内的属性值中。当只有一个关联时,则只有一个属性包含引用 这句话是什么意思 有人能举个例子来解释吗 角色:角色名称解释对象如何参与关系。 您有两个类,Professor和Book,它们如下图所示关联: 这个角色描述了教授和书之间的联系。在这种情况下,教授是相关书籍的作者 每个对象都需要保留对关联对象的引用。引用保存在对象内的属性值中。 为此,我将使用另一个具有一对一多重性的示例
角色:角色名称解释对象如何参与关系。
您有两个类,Professor
和Book
,它们如下图所示关联:
这个角色描述了教授和书之间的联系。在这种情况下,教授是相关书籍的作者
每个对象都需要保留对关联对象的引用。引用保存在对象内的属性值中。
为此,我将使用另一个具有一对一多重性的示例
该图显示查询生成器有一个查询(反之亦然)。代码中如何描述这种关联
您有一个名为Query
的类QueryBuilder
,该类具有类型为Query
的属性。代码:
class QueryBuilder {
Query query;
}
您有一个类查询,其类型为QueryBuilder
的属性名为qbuilder
代码:
class Query {
QueryBuilder qbuilder;
}
属性(查询类QueryBuilder和查询类qbuilder)是对关联对象的引用
当只有一个关联时,则只有一个属性包含引用
在前面的示例中,有一个关联,因此我们在类中有一个属性(字段)来保留关联对象的引用
在下图中,Acount
与BookItem
有两个关联
所以,在类帐户中,我们将有两个字段,每个关联一个字段
class Account {
BookItem[] borrowed;
BookItem[] reserved;
}
请注意,这些关联是一对多的,因此我们为关联设置的字段是可以保存多个BookItems的数组
你可以找到一篇很好的文章,在那里我借用了很多例子来回答这个问题
编辑:解释作者
和书籍
之间的关联
图中连接作者
和书籍
的线是关联的可视化。这是一种双向关联,这意味着Author
一个或多个Book
对象(作者编写的书籍),但Book
也有一个或多个Author
对象(因为书籍可以有多个作者)。多重性多(一个或多个)的关联通常通过集合或数组实现。类作者
有一个字段,可以是书籍
的集合或数组。图表未提供此字段的名称
将Professor
与Book
关联的第一个图表也提供了这些字段的名称<代码>教授有一个名为教科书
的字段,用于保存其书籍
对象Book
有一个名为author
的字段,用于保存其author
对象。图中未提供这些字段的类型。字段教科书
可以声明为以下任何内容:
Book[] textbook;
或
设置教材;
或
列出教科书;
或
收藏教材;
此外,未提供字段的可见性(可以是默认的、私有的或公共的)
有一个很好的原因,从类图中省略了这些信息:图表的作者并不认为他想要与图表通信的消息很重要。我们不能忘记,UML图通过可视化系统的某些方面来帮助理解系统。通常,为了提供系统的不同视角,我们会创建多个图表。在大多数情况下,信息中最重要的元素是类之间的关系。因此,实现细节常常被省略。注意,这些图中省略了许多关于
书籍
-作者
关联的实现细节。如何强制那本书
总是至少有一位作者
,或者如何确保如果一本书
有一位作者
,那么作者
也有这本书
是省略的细节之一。,这是否意味着类author将包含一个图书列表(数组、arrayList或其他),如果是这样,为什么这个列表没有显示为作者字段(或者相反,为什么author没有显示为图书字段)。@AndrewS编辑了我的答案。希望它能解决你的问题。谢谢你的回答,只有两件事。我不认为多对多的关系是完全正确的或是允许的。我还希望这本书包含一个类型为author的字段。当然,如果您使用CASE工具并对这种关系进行建模,那么Book类get就是Author类型的数组。我问这个问题是因为我经常看到你在文章中描述的各种遗漏,并想知道为什么。关联的多样性取决于正在建模的真实世界域。这就是为什么有时“多对多”的多样性是不可避免的。
Set<Book> textbook;
List<Book> textbook;
Collection<Book> textbook;