UML类图几种关系的总结

UML类图几种关系的总结在 UML 类图中 常见的有以下几种关系 泛化 Generalizati nbsp nbsp 实现 Realization 关联 Association 聚合 Aggregation 组合 Composition 依赖 Dependency nbsp 1 泛化 Generalizati 泛化关系 是一种继承关系 它指定了子类如何特化父类的所有特征和行为例如 老虎是动物的一种 箭头指向

UML类图中,常见的有以下几种关系:泛化(Generalization,  实现(Realization,关联(Association),聚合(Aggregation,组合(Composition),依赖(Dependency)

 

1.泛化(Generalization)

【泛化关系】:是一种继承关系,它指定了子类如何特化父类的所有特征和行为例如:老虎是动物的一种.

【箭头指向】:带三角箭头的实线,箭头指向父类

UML类图几种关系的总结

2.实现(Realization)

【实现关系】:是一种类与接口的关系,表示类是接口所有特征和行为的实现

【箭头指向】:带三角箭头的虚线,箭头指向接口

UML类图几种关系的总结

3.关联(Association)

关联关系】:是一种拥有的关系,它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子

关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。

【代码体现】:成员变量

【箭头及指向】:带普通箭头的实心线,指向被拥有者

UML类图几种关系的总结

 

上图中,老师与学生是双向关联,老师有多名学生,学生也可能有多名老师。但学生与某课程间的关系为单向关联,一名学生可能要上多门课程,课程是个抽象的东西他不拥有学生。

UML类图几种关系的总结

 

上图为自身关联:

 

4. 聚合(Aggregation)

【聚合关系】:是整体与部分的关系.如车和轮胎是整体和部分的关系.

聚合关系是关联关系的一种,是强的关联关系;关联和聚合在语法上无法区分,必须考察具体的逻辑关系。

【代码体现】:成员变量

【箭头及指向】:带空心菱形的实心线,菱形指向整体

UML类图几种关系的总结

 

 

5. 组合(Composition)

【组合关系】:是整体与部分的关系.,没有公司就不存在部门      组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期

【代码体现】:成员变量

【箭头及指向】:带实心菱形的实线,菱形指向整体

UML类图几种关系的总结

 

 

6. 依赖(Dependency)

【依赖关系】:是一种使用的关系,所以要尽量不使用双向的互相依赖

【代码表现】:局部变量、方法的参数或者对静态方法的调用

【箭头及指向】:带箭头的虚线,指向被使用者

 

 UML类图几种关系的总结

 

各种关系的强弱顺序:

泛化= 实现> 组合> 聚合> 关联> 依赖

下面这张UML图,比较形象地展示了各种类图关系:

UML类图几种关系的总结

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/205239.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午6:28
下一篇 2026年3月19日 下午6:29


相关推荐

  • SwaggerUI初探

    SwaggerUI初探SwaggerUI 介绍 SwaggerUI 是我们小组在做课程作业 前后端交互需要 API 文档时 我无意间发现的一个工具 借助 SwaggerUI 我们可以便捷的获得类似下方的可视化图形界面 之后 我们便可以根据此 API 文档 进行开发 SwaggerUI 允许任何人 无论是你的开发团队还是最终用户 在没有任何实现逻辑的情况下对 API 资源进行可视化和交互 它 API 文档 通过 Swagg

    2026年3月19日
    2
  • 【读书】领导力的5个层次-概述

    【读书】领导力的5个层次-概述领导力的 5 个层次概述 领导力定义 nbsp nbsp nbsp nbsp nbsp nbsp nbsp 本书作者对领导的定义是 领导力就是影响力 在作者的另一本书 中层领导力 自我修行篇 中 作者又说 领导力是拥有追随者的能力 一旦明确了领导力的定义是拥有追随者的能力 你就要参考这一点弄清楚如何去领导他人 引导他人 罗伯特 戴伦在他的 Powerandinfl 一书中分享的 铁三角 理念将帮助领导者站在最前沿并获

    2026年3月20日
    3
  • python邮件自动发送测试报告,看这篇文章就够了

    python邮件自动发送测试报告,看这篇文章就够了

    2021年5月24日
    131
  • quartz定时任务使用_netty定时调度

    quartz定时任务使用_netty定时调度定时任务调度工具之Quartz(一)一、Quartz介绍OpenSymphony提供的强大的开源任务调度框架;官网:http://www.quartz-scheduler.org/纯Java实

    2022年8月6日
    4
  • 怎么查看git的用户名和密码_git修改用户名密码命令

    怎么查看git的用户名和密码_git修改用户名密码命令转载自:https://www.cnblogs.com/xihailong/p/13354628.html一、查看查看用户名:gitconfiguser.name查看密码:gitconfiguser.password查看邮箱:gitconfiguser.email查看配置信息:$gitconfig–list二、修改修改用户名gitconfig–globaluser.name“xxxx(新的用户名)”修改密码gitconfig–globaluse

    2025年9月24日
    6
  • JavaScript小知识:什么是IIFE?

    JavaScript小知识:什么是IIFE?IIFE 全称为 ImmediatelyI 在 JavaScript 编程中 是 立即调用函数表达式 型 function statements 这是一个被称为自执行匿名函数的设计模式 主要包含两部分 第一部分是包围在圆括号运算符 里的一个匿名函数 这个匿名函数拥有独立的词法作用域 这不仅避免了外界访问此 IIFE 中的变量 而且又不会污染全局作用域 第二部分再一次使用 创建了一个立即执行函数

    2026年3月17日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号