UML 聚合可以是双向的吗?

2024-04-10

我正在 Python 中实现一个具有 MVC 模式的应用程序,具有以下类定义:

class Controller(object):
    def __init__(self, model, view):
        self.model = model
        self.view = view

        self.view.register(self)

class Model(object):
    def __init__(self):
        pass

class View(object):
    def __init__(self):
        self.controller = None

    def register(self, controller):
        self.controller = controller

类的实例化为

model = Model()
view = View()
Controller(model, view)

控制器可以访问视图,但视图也可以访问控制器(因为控制器将其自身传递给视图)。在 UML 中表示这种结构的适当方法是什么?我的猜测是

但我不确定这两种方式的聚合是否存在。


您正在使用共享构图(空心菱形)。引用 p。 110 规格

指示该属性具有共享聚合语义。共享聚合的精确语义因应用程序领域和建模者而异。

因此,除非您对其语义有自己的定义,否则不建议一般使用它。

如果您打算使用复合聚合,则两侧都禁止这样做。这意味着每个连接元件的寿命取决于另一个元件的寿命。

引用 p。 110 以下:

组合物可以在具有传递删除特征的有向无环图中链接;也就是说,删除图的一部分中的对象也会导致删除该对象下面的子图的所有对象。

双向不是无环的。

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

UML 聚合可以是双向的吗? 的相关文章

  • Python Pandas 滚动聚合一列列表

    我有一个简单的数据框 df 和一列列表lists 我想根据以下内容生成一个附加列lists The df好像 import pandas as pd lists 1 1 2 1 2 3 3 2 9 7 9 4 2 7 3 5 create
  • 如何把父母和孩子联系起来?

    有两个简单的类 一个只有parent属性 并且两者兼而有之parent and children属性 这意味着同时具备两者的人parent and children继承自唯一的parent 这是只有parent属性 我们就这样称呼它吧Chi
  • Vimeo API:获取下载所有视频文件的链接列表

    再会 我正在尝试从 Vimeo 帐户获取所有视频文件的列表 直接下载的链接 有没有办法在 1 GET 请求中做到这一点 好的 如果是API限制的话 就100倍 我有硬编码脚本 我在其中发出 12 个 GET 请求 1100 多个视频 根据文
  • 导入错误:无法导入名称“FFProbe”

    我无法获取ffprobe包 https github com simonh10 ffprobe在 Python 3 6 中工作 我使用 pip 安装它 但是当我输入import ffprobe it says Traceback most
  • App Engine 上的 Django 与 webapp2 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何通过 python 中的函数运行列表?

    我试图通过我创建的函数运行我的列表 但不断收到错误 我不知道出了什么问题 温度 F temp f 19 21 21 21 23 功能 def fahrToCelsius tempFahrenheit return tempFahrenhei
  • 使用 Boto3 超时的 AWS Lambda 函数

    我已经解决了我自己的问题 但无论如何我都会发布它 希望能节省其他人几个小时 我在 AWS 上有一个无服务器项目 使用 Python 将记录插入到 kinesis 队列中 但是 当我使用 boto3 client kinesis 或 put
  • Python Selenium 打印另存为 PDF 等待文件名输入

    我正在尝试通过打印对话框将网站另存为 PDF 我的代码允许我另存为pdf 但要求我输入文件名 我不知道如何将文件名传递到弹出框 附上我的代码 import time from selenium import webdriver import
  • 使用 Pandas 从 csv 文件读取标题信息

    我有一个包含 14 行标题的数据文件 在标头中 有经纬度坐标和时间的元数据 我目前正在使用 pandas read csv filename delimiter header 14 读取文件 但这只是获取数据 我似乎无法获取元数据 有人知道
  • 如何用函数记录一个文件?

    我有一个带有函数 lib py 但没有类的python 文件 每个函数都有以下样式 def fnc1 a b c This fonction does something param a lalala type a str param b
  • 如何找到多个 pandas 数据框中一对列与任意顺序对的交集?

    我有多个 pandas 数据框 为了简单起见 假设我有三个 gt gt df1 col1 col2 id1 A B id2 C D id3 B A id4 E F gt gt df2 col1 col2 id1 B A id2 D C id
  • NSUserNotificationCenter.defaultUserNotificationCenter() 使用 PyInstaller 返回 None

    我正在尝试将通知发送到通知中心 Mac OSX 我正在使用 PyObjC 绑定来使用我们的 python 应用程序中的 cocoa api 我正在使用以下代码片段 import Foundation import objc NSUserNo
  • 为什么需要设置WORKON_HOME环境变量?

    我已经有一段时间没有使用 python 虚拟环境了 但我也安装了虚拟环境包装器 我的问题是 在文档页面中它说要这样做 export WORKON HOME Envs mkdir p WORKON HOME source usr local
  • 列表推导式和 for 循环中的 Lambda 表达式[重复]

    这个问题在这里已经有答案了 我想要一个 lambda 列表 作为一些繁重计算的缓存 并注意到这一点 gt gt gt j for j in lambda i for i in range 10 9 9 9 9 9 9 9 9 9 9 Alt
  • 在 django 中导入设置时出现奇怪的错误

    我有很多项目在 ubuntu 中使用 python2 7 和 virtualenv virtualenvwrapper 工作 在我的工作中 一些开发人员使用 macosx 和 windows 通常我像往常一样创建项目 django admi
  • pandas groupby 操作缺少数据

    在 pandas 数据框中 我有一列如下所示 0 M 1 E 2 L 3 M 1 4 M 2 5 M 3 6 E 1 7 E 2 8 E 3 9 E 4 10 L 1 11 L 2 12 M 1 a 13 M 1 b 14 M 1 c 15
  • Snakemake:将多个输入用于具有多个子组的一个输出的规则

    我有一个工作管道 用于下载 比对和对公共测序数据执行变体调用 问题是它目前只能在每个样本的基础上工作 i e作为每个单独测序实验的样本 如果我想对一组实验 例如样本的生物和 或技术复制 执行变体调用 则它不起作用 我试图解决它 但我无法让它
  • AWS 将 MQTT 消息存储到 DynamoDB

    我构建了一个定期发送 MQTT 消息的 python 脚本 这是发送到后端的 JSON 字符串 Id 1234 Ut 1488395951 Temp 22 86 Rh 48 24 在后端 我想将 MQTT 消息存储到 DynamoDB 表中
  • 为什么从 openAI 导入 Universe 模块时出现“无效语法”错误

    当我导入时universe来自 openAI 的模块 我收到以下错误 Traceback most recent call last File
  • PyObjC + Python 3.0 问题

    默认情况下 Cocoa Python 应用程序使用默认的 Python 运行时版本 2 5 如何配置我的 Xcode 项目以便它使用较新的 Python 3 0 运行时 我尝试用新版本替换项目中包含的Python framework 但它不

随机推荐

  • 在 MVC 中拥有巨大的控制器或许多控制器更好?

    我们正在 ASP NET MVC 中构建一个相当大的 HR 应用程序 到目前为止 我们的控制器变得相当大 例如 我们有一个员工控制器 并且包含所有员工视图 个人信息 员工扣除额 家属等 每个视图都可能有多个操作或子视图 例如 CRUD 每个
  • 从非 UI 线程打开 Windows 窗体

    如何从非 UI 线程正确打开 Windows 窗体 var th new Thread gt var form new YourForm form FormClosing s e gt Application ExitThread form
  • 获取给定路径的文件ID

    有没有直接的方法通过给出路径来获取文件ID 例如 some folder deep inside file txt 我知道这可以通过递归检查文件夹的内容来完成 但简单的调用会更好 Thanks 我们目前不支持这一点 但在我们继续构建 v2
  • ACTION OPEN DOCUMENT TREE 仅返回空的最近文件夹

    我从之前的帖子中仔细复制了以下代码片段 它在模拟器和我的 Nexus 9 设备上都有效 在一定程度上 但是 我得到的只是一个空的 最近 文件夹 而且我从未到达写入文件的代码 我必须更改什么才能获得正确的文档树 private void te
  • 严格的 DOCTYPE 影响图像之间的间距

    当我切换到 XHTML Strict DOCTYPE 时 我遇到了图像间距问题 下面的代码 使用雅虎的重置样式表来消除所有默认的浏览器填充 在下面的两个图像之间留下大约 4 像素的间隙 但仅当我使用严格的文档类型时 为什么是这样 这只是 C
  • 在 Google DataStore GQL 中,如何对 WHERE 术语进行分组?

    我需要对 WHERE 子句中的术语进行分组 例如 WHERE param1 foo1 OR param1 foo2 AND param2 bar1 OR param2 bar2 但它给了我一个语法错误 说括号是 意外的 实际错误是 GQL
  • IntelliJ IDEA 中的水平滚动与垂直滚动类似

    IntelliJ IDEA 中的垂直滚动按照我们的预期工作 上下移动视口 然而 水平滚动不会移动视口 而是左右移动光标 如何使水平滚动移动视口 就像垂直滚动一样 如果重要的话 这是在 Dell Inspiron 5000 系列笔记本电脑上
  • 通过意图打开谷歌地图在android中的特定位置

    我正在设计一个应用程序 我想在地图上显示特定位置 我路过String已放置的地址Google Map 以下是我的Intent code String url http maps google com maps daddr address I
  • 如何在 PySpark 中创建返回字符串数组的 udf?

    我有一个返回字符串列表的 udf 这应该不会太难 我在执行 udf 时传入数据类型 因为它返回一个字符串数组 ArrayType StringType 现在 不知怎的 这不起作用 我正在操作的数据框是df subsets concat看起来
  • 如何在 Qt Creator 中添加名称以大写字母开头的 c++ 文件?它会自动将其变成小写字母

    我正在尝试将 C 文件添加到现有的 Qt 项目中 但无法使 C 文件的名称以大写字母开头 例如 使用向导 DownloadOsm cpp 自动成为 downloadosm cpp 要解决此问题 请执行以下操作 工具 gt 选项 gt C g
  • 使用 XML-View 将浏览器事件附加到控件

    我的 REST 服务向我发送了大量数据 每个属性都包含value and a help 包含字段属性的详细描述的属性 好的 我在 JSONModel 中有数据 具有值和帮助的属性列表 并且我使用数据绑定XML https openui5 h
  • 无法清除临时存储

    无法清除临时存储 已确定某些文件在 Web 应用程序中访问不安全 或者对文件资源进行了太多调用 安全错误 我在控制台中收到此错误 我有一个名为 script js 的脚本 它进行 ajax 调用以从 php 检索数据 知道为什么吗 这是我的
  • CMake:如何构建共享库和静态库而不需要重新编译源两次

    我想构建同一个库的静态版本和共享版本 如上所述是否可以让 CMake 构建同一库的静态版本和共享版本 https stackoverflow com questions 2152077 is it possible to get cmake
  • Chart.js 中具有线性时间刻度的折线图

    我正在尝试使用Chart js 3 3 2 https www chartjs org docs latest 显示一些具有等距 x 日期轴的折线图 就像他们给出的例子一样here https www chartjs org docs la
  • IntelliJ 无法识别 PATH 变量

    我最近尝试导入现有的 Gradle 项目 使用启动窗口中的 打开项目 选项和现有的 build gradle 文件来自动设置项目 完成此操作后 IntelliJ 中出现一条错误消息 无法使用 Gradle 安装 Users myUser T
  • 自引用 has_many 的问题:通过 Rails 中的关联

    我今天正在阅读有关自引用 has many through 数据情况的内容 因为我正在尝试构建一个使用它们的 Rails 应用程序 我找到了这个示例情况 http blog hasmanythrough com 2007 10 30 sel
  • 如何查看当前显示的html页面的来源(动态)而不是原始页面? [复制]

    这个问题在这里已经有答案了 大家好 作为一名狂热的 Firefox 用户 我使用诸如 Style 和 Greasemonkey 之类的插件来修改页面的默认样式 然而 浏览器的视图 gt 页面源选项仅显示原始形式的页面 而不显示由脚本或样式操
  • 如何从控制器访问 REST API 的所有可用路由?

    我正在使用 Spring Boot 创建一个 REST API 我想当用户发出请求时返回所有可用路由的列表 作为 JSON 例如 help或者甚至只是到服务器的根端点 即在我的情况下 因为我在本地工作 localhost 8080 我知道我
  • 天数累计

    我有一个 MySQL 表 如下所示 date count 2010 01 01 5 2010 01 02 6 2010 01 03 7 如何将每一天的总和累加到下一天 所以结果是这样的 date acum per day 2010 01 0
  • UML 聚合可以是双向的吗?

    我正在 Python 中实现一个具有 MVC 模式的应用程序 具有以下类定义 class Controller object def init self model view self model model self view view