首页 > 其他分享 >uml 中 继承 实现 依赖 组合 等表示方法

uml 中 继承 实现 依赖 组合 等表示方法

时间:2025-01-10 15:43:34浏览次数:1  
标签:表示 依赖 指向 实线 继承 示例 箭头 uml

在UML(统一建模语言)中,不同的关系类型使用不同的箭头和线条来表示。以下是常见的UML关系及其对应的表示方法:


1. 继承(Inheritance)

  • 表示空心三角形箭头 + 实线

  • 方向:箭头指向父类(基类)

  • 说明:表示一个类继承自另一个类。

  • 示例

      复制
    [子类] ——▷ [父类]

2. 实现(Realization)

  • 表示空心三角形箭头 + 虚线

  • 方向:箭头指向接口或抽象类

  • 说明:表示一个类实现了一个接口或抽象类。

  • 示例

      复制
    [实现类] - - -▷ [接口]

3. 依赖(Dependency)

  • 表示普通箭头 + 虚线

  • 方向:箭头指向被依赖的类

  • 说明:表示一个类依赖于另一个类(例如,作为方法参数、局部变量等)。

  • 示例

      复制
    [依赖类] - - - > [被依赖类]

4. 关联(Association)

  • 表示普通箭头 + 实线

  • 方向:箭头指向被关联的类(可选,表示导航方向)

  • 说明:表示两个类之间有某种联系,通常是成员变量级别的关联。

  • 示例


    •   复制
      [类A] ——> [类B]

    5. 聚合(Aggregation)

    • 表示空心菱形 + 实线

    • 方向:菱形指向整体,箭头指向部分

    • 说明:表示一种“弱拥有”关系,部分可以独立于整体存在。

    • 示例

        复制
      [整体] ◇——> [部分]

    6. 组合(Composition)

    • 表示实心菱形 + 实线

    • 方向:菱形指向整体,箭头指向部分

    • 说明:表示一种“强拥有”关系,部分不能独立于整体存在。

    • 示例

        复制
      [整体] ◆——> [部分]


  • 总结对比表

    关系类型箭头/线条样式方向示例
    继承 空心三角形 + 实线 子类 → 父类 [子类] ——▷ [父类]
    实现 空心三角形 + 虚线 实现类 → 接口 [实现类] - - -▷ [接口]
    依赖 普通箭头 + 虚线 依赖类 → 被依赖类 [依赖类] - - - > [被依赖类]
    关联 普通箭头 + 实线 类A → 类B [类A] ——> [类B]
    聚合 空心菱形 + 实线 整体 → 部分 [整体] ◇——> [部分]
    组合 实心菱形 + 实线 整体 → 部分 [整体] ◆——> [部分]

    注意事项

    1. 箭头方向:箭头方向表示关系的方向,通常指向被依赖、被继承或被关联的类。

    2. 多重性:在关联、聚合和组合中,可以在线条两端标注多重性(如 10..1* 等)。

    3. 命名:可以为关系命名,以更清晰地描述关系的含义。

    通过正确使用这些符号,可以清晰地表达类之间的关系,使UML图更易读和易懂。


标签:表示,依赖,指向,实线,继承,示例,箭头,uml
From: https://www.cnblogs.com/r1-12king/p/18664093

相关文章

  • JavaScript系列(16)--原型继承
    JavaScript原型继承......
  • Maven依赖管理项目构建工具
    一、Maven依赖管理项目构建工具目录一、Maven简介1.Maven介绍2.Maven主要作用理解3.Maven软件工作原理模型图(了解)二、Maven安装和配置1.Maven安装2.Maven环境配置3.Maven功能配置4.IDEA配置本地Maven软件三、基于IDEA创建Maven工程1.梳理Maven工程GAVP属性2.......
  • 多继承背景下的调用逻辑【MRO】
    MROMRO(MethodResolutionOrder,方法解析顺序)是指在多继承情况下,Python解释器按照特定的顺序来查找和调用方法的规则。classA:passclassB:passclassC(A,B):passprint(C.__mro__)#输出:(<class'__main__.C'>,<class'__main__.A'>,<class......
  • C++泛型编程:类模版中成员函数的创建时机,类模版函数传参、类模版继承
    普通类的成员函数的话,在刚开始就创建出来了,但是类模版中的成员函数的话,只有在具体调用运行的时候才会被创建,可见以下代码例子:#include<iostream>usingnamespacestd;classpeople1{public: voidrun(){ cout<<"跑"<<endl; }};classcircle1{public: void......
  • mDNS协议是一种方便、无中央服务器依赖的本地网络设备发现协议,通过多播的方式实现设备
    mDNS(MulticastDNS)是一种基于DNS(DomainNameSystem)协议的协议,旨在为本地网络中的设备提供名称解析服务,特别是在没有DNS服务器的情况下。mDNS允许设备在局域网(LAN)内通过名称而不是IP地址进行通信和识别。什么是mDNS协议?mDNS是一种局域网(LAN)内的DNS协议实现,它使得设备可以通过“......
  • 第10章图10.16-10.20《分析模式》原图和UML图对比
    DDD领域驱动设计批评文集做强化自测题获得“软件方法建模师”称号《软件方法》各章合集图10.16创建传统期权类型。这可以使处理状态模型变得更容易,但不那么自然。图10.17“投资组合浏览器”以及它和领域模型的关系。“投资组合浏览器”和“浏览器行”是应用......
  • 第10章图10.11-10.15《分析模式》原图和UML图对比
    DDD领域驱动设计批评文集做强化自测题获得“软件方法建模师”称号《软件方法》各章合集之前给出的图10.3改编有错误,修正重发图10.3使用期权过程的事件图。期权只能在到期日开始后行使,并且只有在"价内(inthemoney)"时才会行使,即行使期权比以当前价格进行现货交易更......
  • UML建模语言中不同图之间可以进行一致性检验-表示怀疑
    在UML(统一建模语言)中,**不同图之间确实可以进行一致性检验**,包括对于活动图和用例图,尤其是两者之间关键元素的一致性验证。进行这样的验证的目的,是确保建模的不同视角之间具有共同的信息基础,从而保持模型的整体完整性和一致性。以下是针对活动图与用例图的一致性验证的一些关键......
  • 写一个pyqt5程序的步骤(类,继承,init,类做参数等)
    kimi生成的,两种区别和相似在哪。类没有init函数会怎样?kimi生成importsysfromPyQt5.QtWidgetsimportQApplication,QWidget,QVBoxLayout,QLineEditclassExample(QWidget):def__init__(self):super().__init__()self.initUI()definitUI......
  • windows下php安装依赖版本工具composer
    1.先把php加入到环境变量 2.直接下载composer.phar,地址:https://dl.laravel-china.org/composer.phar把下载的composer.phar放到PHP安装目录  命令下载: php-r"copy('https://getcomposer.org/installer','composer-setup.php');"phpcomposer-setup.phpphp......