Object 关联关系中的角色名称

Object 关联关系中的角色名称,object,associations,roles,uml,Object,Associations,Roles,Uml,来自UML圣经,关于角色: 角色:角色名称解释对象如何参与关系。 每个对象都需要保留对关联对象的引用。引用保存在对象内的属性值中。当只有一个关联时,则只有一个属性包含引用 这句话是什么意思 有人能举个例子来解释吗 角色:角色名称解释对象如何参与关系。 您有两个类,Professor和Book,它们如下图所示关联: 这个角色描述了教授和书之间的联系。在这种情况下,教授是相关书籍的作者 每个对象都需要保留对关联对象的引用。引用保存在对象内的属性值中。 为此,我将使用另一个具有一对一多重性的示例

来自UML圣经,关于角色:

角色:角色名称解释对象如何参与关系。 每个对象都需要保留对关联对象的引用。引用保存在对象内的属性值中。当只有一个关联时,则只有一个属性包含引用

  • 这句话是什么意思
  • 有人能举个例子来解释吗

  • 角色:角色名称解释对象如何参与关系。

    您有两个类,
    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;