IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 知识点滴 - UML类关系图及描画工具drawio -> 正文阅读

[Java知识库]知识点滴 - UML类关系图及描画工具drawio

UML Class Diagram Relationships / UML类图中的各种关系

这篇文章解释了如何正确确定和实现适用于面向对象建模的不同类图关系。

This article explains how to correctly determine and implement the different class diagram relationships that are applicable in object-oriented modeling.

? ? ? ??Relationships in UML class diagrams /?UML类图中的各种关系?

什么是类图?

类图是面向对象建模的主要构建模块。它们被用来显示系统中的不同对象、它们的属性、它们的操作以及它们之间的关系。

下图是一个简单类的例子。

带有属性和操作的简单类图 / Simple class diagram with attributes and operations

在这个例子中,描述了一个名为 "贷款账户 "的类。类图中的类用一个矩形表示,分成三部分:

- 最上面的部分包含了类的名称。

- 中间部分包含该类的属性。

- 底部的分区显示了与该类相关的可能操作。

这个例子显示了一个类是如何以一种非常系统和清晰的方式来封装某个特定对象的所有相关数据的。类图是一个类似于上面的类的集合。

类图中的关系

类是以特定的方式相互关联的。特别是,类图中的关系包括不同类型的逻辑连接。以下是UML中规定的逻辑关联类型:

* Association

* Directed Association

* Reflexive Association

* Multiplicity

* Aggregation

* Composition

* Inheritance/Generalization

* Realization

Association 关联

这是一个广义的术语,包括了类之间的任何逻辑联系或关系(logical connection or relationship)。例如,乘客和飞机可以像上面那样联系起来。

表示有关系的两个类,并且关系是双向的。

Directed Association 直接关联

这个指的是用带箭头的线表示的方向关系。箭头描绘了一个包含和被包含(container-contained)的有方向性的关系。

和普通的关联不同,这里体现了关系的方向性。根据一架飞机,可以找到里面的乘客,飞机负责运送乘客,飞机是主动的一方,而反过来乘客就比较被动,不会对飞机造成什么影响。

Reflexive Association 反身关系

当一个类可能有多种职能或责任时,就会出现这种情况。例如,一个在机场工作的工作人员可能是飞行员、航空工程师、售票员、保安或维修人员。如果维修人员是由航空工程师管理的,那么在同一类别的两个实例中就可能存在管理的关系。

Multiplicity 集群关系

这是在描述一个类作为一个集合与另一个类作为集合元素的主动型的逻辑关联。例如,一个机群可能包括多架飞机,而一架商业飞机可能包含零到许多乘客。图中的符号0...*意味着 "零到多个"。

Aggregation 聚合? (has a 关系)

是指一个特定类的形成是由另一个类聚集而成或看成另一个类的集合。例如,"图书馆 "这个类是由一本或多本书籍以及其他部分组成的。在聚合中,所包含的类并不强烈依赖于容器的生命周期。在同一个例子中,即使图书馆解散了,书籍也会一直存在。为了在图中显示聚合关系,在父类附近画一条从父类到子类的线,并在父类附近画一个菱形。

Composition 组合

组合关系与聚合关系非常相似。唯一的区别是它的关键目的是强调所包含的类对容器类的生命周期的依赖性。也就是说,当容器类被破坏时,包含的类将被抹去。例如,一个双肩包的侧袋在双肩包被破坏后也将不复存在。

为了在UML图中显示组合关系,使用一条连接两个类的方向线,在容器类旁边有一个填充的菱形,方向箭头指向包含的类。

Inheritance / Generalization 继承和泛化 (is a 关系)

指的是一种关系,其中一个相关的类改写了父类的相同功能。换句话说,子类是父类的一个特定类型。为了在UML图中显示继承性,用一个未填充的箭头画出一条从子类到父类的实线。

Realization 实现



表示一个类中定义的功能由另一个类来实现。为了在UML中显示这种关系,从定义功能的类到实现功能的类,要画一条带有未填实心箭头的断线。在这个例子中,打印机类实现了一个Printer Setup接口,这个接口是用来进行打印机设置用的。

------------------------------------------------?

可以使用Draw.io来描画UML图。Draw.io和diagrams.net是同一个,后者是新名字。

使用Draw.io可以使用网页版,也可以下载安装到本地。

使用截图如下:

参考:

Class Diagram Relationships in UML Explained with Examples

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-02-28 15:14:49  更:2022-02-28 15:17:01 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 11:52:35-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码