关联关系中的角色名称

2023-11-26

从 UML 圣经来看,大约role:

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

  1. 这句话是什么意思呢?
  2. 谁能举个例子来解释一下吗?

Roles:A role name explains how an object participates in the relationship.

你有两节课,Professor and Book它们的关联如下图所示:

diagram 1

该角色描述了教授和书籍之间的关联。在这种情况下,教授是相关书籍的作者。

Each object needs to hold a reference to the associated object or objects. The reference is held in an attribute value within the object.

为此,我将使用另一个具有一对一多重性的示例。

diagram 2

该图显示查询构建器有一个查询(反之亦然)。代码中如何描述这种关联?

你有课QueryBuilder具有 type 属性Query named query。在代码中:

class QueryBuilder {
    Query query;
 }

你有一个 Query 类,它有一个 type 属性QueryBuilder named qbuilder

In code:

class Query {
    QueryBuilder qbuilder;
 }

属性(类 QueryBuilder 的查询和类 Query 的 qbuilder)是reference to the associated object

When there is only one association then there is only one attribute holding a reference

在前面的示例中,存在一个关联,因此我们在类中拥有一个属性(字段)来保存关联对象的引用。

在下图中Acount有两个关联BookItem.

diagram 3

因此,在 Account 类中,我们将有两个字段,每个关联一个字段。

class Account {
    BookItem[] borrowed;
    BookItem[] reserved;
}

请注意,这些关联是一对多的,因此我们用于关联的字段是可以保存多个 BookItem 的数组。

Here你可以找到一篇很好的文章,我在其中借用了这个答案的大部分例子。

EDIT:之间关联的解释Author and Book.

连接的线Author and Book图中是关联的可视化。这是一个双向关联,这意味着Author一个或多个Book对象(作者写的书)而且Book有一个或多个Author对象(因为一本书可以有多个作者)。具有多重性的关联many(一个或多个)通常用集合或数组来实现。班级Author有一个字段可以是集合或数组Book。该图未提供该字段的名称。

第一个关联图Professor with Book还提供这些字段的名称。Professor有一个名为名称的字段textbook保持其Book对象。Book有一个名为名称的字段author保持其Author对象。该图未提供这些字段的类型。场textbook可以声明为以下任意内容:

Book[] textbook; 

or

Set<Book> textbook;

or

List<Book> textbook;

or

Collection<Book> textbook;

此外,不提供字段的可见性(可以是默认的、私有的或公共的)。

从类图中省略此信息有一个很好的理由:图的作者认为它对于他想要与图通信的消息并不重要。我们不能忘记 UML 图用于通过可视化系统的某些方面来帮助理解系统。通常我们会创建多个图表,以便提供系统的不同视角。在大多数情况下,最重要的信息元素是类之间的关系。因此,实现细节常常被省略。请注意,有很多关于Book-Author这些图中省略了关联。如何强制这样做Book总会有至少一个Author或者如何确保如果Book has an Author然后还有Author有这个Book是被省略的细节之一。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关联关系中的角色名称 的相关文章

  • Javascript 中“是……的实例”是什么意思?

    这个问题的答案 JavaScript 函数的原型属性的初始值是多少 https stackoverflow com questions 4073677 what is the initial value of a javascript fu
  • 如何使对象“a == b”的比较成立? [复制]

    这个问题在这里已经有答案了 这是面试前 JavaScript 在线测试的问题之一 function F var a new F var b new F Q 如何进行比较a b to be true e g console log a b t
  • Spring Security 上的组和 acl

    我想使用 Spring Security 来管理用户 组和权限 我想使用 ACL 来保护我的域对象 但我找不到将组分配给 acl 的方法 例如 我有用户和组 每个组可以拥有以下证券 管理论坛 可以是类似的角色ROLE FORUM MANAG
  • 序列化对于对象大小估计可靠吗?

    我使用序列化来估计对象使用的内存量 我已经读过this https stackoverflow com questions 426396 how much memory does a c net object use and this ht
  • C++ 指针和对象实例化

    这有效 MyObject o o new MyObject 而这并不 MyObject o new MyObject Why 关键词new 返回一个指针 http msdn microsoft com en us library kewsb
  • JavaScript 中的可选参数

    如果缺少剩余参数 为什么该函数不会抛出错误 showStatistics Mark Teixeira New York Yankees 1st Base 这是定义的函数 function showStatistics name team p
  • 在这种情况下 b 是标量对象吗?

    include
  • 这是正确的 UML 活动图吗?

    这是活动图截图 https i stack imgur com 575VU jpg 这是对的吗 如果不是 我做错了什么 从语法上讲 这个带有分区的活动图似乎几乎是正确的 起始节点应该是实心 黑色 圆圈 最终节点应该有一个内部实心 黑色 圆圈
  • 在 Solr 中实现术语关联挖掘的最简单方法是什么?

    关联挖矿似乎为检索提供了良好的结果相关术语在文本语料库中 有很多关于这个主题的著作 其中包括著名的LSA http en wikipedia org wiki Latent semantic analysis方法 挖掘关联最直接的方法是构建
  • Javascript - deepEqual 比较

    问题 来自 Eloquent Javascript 第二版 第 4 章 练习 4 编写一个函数 deepEqual 它接受两个值 并且仅当它们相等时才返回 true 是相同的值或具有相同属性的对象 其值也是 与对 deepEqual 的递归
  • 将多维数组转换为单数组(Javascript)

    我有一个对象数组 来自 XLSX js 解析器 因此其长度和内容各不相同 表示已给予项目的资助 简化后 它看起来像这样 var grants id p 1 location loc 1 type A funds 5000 id p 2 lo
  • UML 的 XMI 有 XSD 吗?

    是否有 UML XMI 文件的 XSD 标头仅包含名称空间引用
  • Node.js - console.log 不显示数组中的项目,而是显示 [Object]

    我在注销对象内数组的内容时遇到问题 实际的物体看起来像这样 var stuff accepted item1 item2 rejected response Foo envelope from The sender to new item1
  • 将值添加到对象类型c#

    我有这样的对象 object rt new page 1 现在我如何向该对象添加新值 我的意思是这样的 rt code 5 这怎么可能呢 听起来更像是你想要一个Dictionary
  • 如何在 C# 中将 Json 转换为对象

    我想将 Json 转换为 C 中的对象 这里的 Json 是 值 e920ce0f e3f5 4c6f 8e3d d2fbc51990e4 如何使用 Object 问题看似愚蠢 但其实并不那么愚蠢 我没有简单的 Json 我有 IEnume
  • 双向和单向关联 UML

    虽然我以为我明白了aggregation and composition 我很难理解bi directional and uni directional协会 我读过bi directional协会 两个班级都知道 彼此以及与uni dire
  • 聚合多重性 UML

    我和我的同事在某一点上无法达成一致 在 UML 中 当进行聚合时 菱形边重数最大为 1 或者可以是 0 吗 还是取决于某种观点 先感谢您 首先 您需要具体说明您指的是哪个 钻石 作为空钻石聚合填充钻石是作品 如果你的意思是空钻石 那么 Ic
  • Android Studio 上的代码 Iris 插件

    我正在尝试使代码 iris 插件在 Android studio 上工作 我按右键单击 gt 创建代码虹膜图 然后我收到一条通知 表明我的图表已准备就绪 但我不知道该图何时存储 创建的文件的名称是什么以及如何打开它 有任何想法吗 CODE
  • 如何递归地将嵌套对象数组转换为平面对象数组?

    我有以下深度嵌套对象数组 const data name foo children count 1 name A count 2 name B name bar children count 3 name C children count
  • json.Unmarshal json字符串到对象是空结果[重复]

    这个问题在这里已经有答案了 我有一个非常简单的程序 如下所示 package main import encoding json fmt type RunCommand struct level string json level call

随机推荐

  • sprintf() 如何防止 SQL 注入?

    我听说过sprintf 防止 SQL 注入 这是真的吗 如果是这样 怎么办 为什么人们建议这样编写查询 sql sprintf SELECT FROM TABLE WHERE COL1 s AND COL2 s col1 col2 spri
  • 圆线交点

    public static ArrayList
  • 如何从网页确定主机安装的 ASP.NET 版本

    我有一个在 Windows 共享托管环境中运行的网站 在他们的共享主机帐户控制面板中 我将其设置为使用 ASP NET 版本 3 0 但没有具体说明 3 5 SP1 如何查看在 asp net 页面托管我的网站的服务器上运行的已安装版本 T
  • PyMySQL 和 OrderedDict

    我已经使用 PyMySQL 一段时间了 并创建了自己的包装器 我习惯于速记编写查询 尽管如此 我一直在使用 OrderedDict 创建 CSV 文件 因为我需要保持顺序相同 但我意识到 如果我使用 PyMySQL 查询数据库 我将无法获得
  • 将值推送到 Laravel 中现有的缓存值

    我想为现有缓存设置一个值 我有这样的事情 Cache put key foo bar expiresAt 现在我该如何推动 sad 值到这个键而不删除最后的值 在推送值并获取缓存后需要类似的东西 foo bar sad 请尝试以下操作 Ca
  • MySQL 中的基数是什么?

    MySQL 中的基数是什么 请用简单的 非技术性的语言进行解释 如果任何表的索引详细信息显示字段的基数group id为11 那么这意味着什么呢 最大基数 所有值都是唯一的 最小基数 所有值都相同 有些列被称为高基数列 因为它们有约束 例如
  • Python:覆盖 __new__ 中的 __init__ 参数

    我有一个 new 方法如下 class MyClass object def new cls args new args args sort prev args pop 0 while args next args pop 0 if pre
  • 在反应中下载文件

    我有一个使用 Laravel 创建的 Restful API 该 API 如下所示 http 127 0 0 1 8000 api file pdf id 这是我的下载代码 public function pdfDownload id pd
  • “日期”的默认值无效

    我想将日期设置为mysql中日期的默认值 不是时间戳 但出现以下错误 ALTER TABLE RMS transactionentry CHANGE Date Date DATE DEFAULT NOW NOT NULL Error Inv
  • 如何保持响应图像相同的高度?

    我正在制作一个网页 其中有一排并排有封面照片和个人资料图片 我将它们都放在不同大小网格的引导行中 但是 个人资料图片总是低于封面照片 它的高度更大 如何让它们保持响应 但高度相同 我的最终目标是让它们看起来像一条带 之间有填充 然后当窗口大
  • 每次运行硒测试时如何增加字段值?

    每次通过 Selenium IDE 运行 Selenium 测试时 是否有任何简单的方法可以将字段值增加 1 Command Type Target some kind of id Value number 1 EDIT 1 感谢克罗森沃尔
  • 通过 server.execute 传递参数?

    可以通过传递参数server execute 外汇 我在我的site asp我需要的 IF 场景functions asp a something id 123被执行 这可能吗 在 site asp 上 dim id id 123 if b
  • 命令“npm start”不执行任何操作

    进入后npm start在我的 Node 项目的目录中 我看到旋转的管道符号 表明 npm 正在加载 然而 该图形会无限期地显示 并且什么也不会发生 没有提供错误消息 我该如何解决或至少诊断这个问题 My 包 json如下 name Pro
  • HTML5 和 Amazon S3 分段上传

    是否可以使用 HTML 5 File API 例如 这个库 https github com 23 resumable js 与 S3 分段上传功能结合使用 http docs aws amazon com AmazonS3 latest
  • Django 头痛与简单的非 ASCII 字符串

    我刚刚创建了以下模型 class Categoria models Model nombre models CharField max length 30 padre models ForeignKey self blank True nu
  • 如何对数组进行降序排序?

    我有一个数组 a 0 9 6 12 1 我需要一种按降序排序的方法 a 12 9 6 1 0 为了按升序排序 我有一个 Ruby 函数a to a sort 我正在寻找一个函数来按降序对数组进行排序 如下所示 a 0 9 6 12 1 so
  • Windows 10 的应用内存限制是多少?

    Windows Phone 8 1 的应用程序内存限制可以在 MSDN 上轻松找到 但我似乎无法找到有关 Windows 10 尤其是 Windows 10 Mobile 上应用程序内存限制的明确信息 每个设备系列 Xbox 台式机 手机
  • Webview shouldOverrideUrlLoading 没有被调用

    我正在制作一个电子书阅读器 它使用 epub 格式将书籍加载到网络视图中 在某些书中 有指向同一章中某些部分的锚链接 每一章都以 html 形式加载 这就是链接的样子 file storage sdcard0 Android data co
  • 如何用 JSON 表示稀疏数组?

    我有一个稀疏数组 我想用 JSON 表示 例如 10 gt 100 1 gt 102 3 gt 44 12 gt 87 12345 gt 0 我怎样才能做到这一点 我可以这样做吗 您可以将其表示为一个简单的对象 10 100 1 102 3
  • 关联关系中的角色名称

    从 UML 圣经来看 大约role 角色 角色名称解释了对象如何参与关系 每个对象都需要保存对关联对象的引用 该引用保存在对象内的属性值中 当只有一个关联时 则只有一个属性持有引用 这句话是什么意思呢 谁能举个例子来解释一下吗 Roles