UML类图之间的关系与对应的代码关系

2024-06-14 03:52

本文主要是介绍UML类图之间的关系与对应的代码关系,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

UML类图之间的关系与对应的代码关系

  • 1. 依赖关系
    • 1.1 图解
    • 1.2代码实现
  • 2. 关联关系
    • 2.1图解
    • 2.2代码实现
  • 3. 聚合关系
    • 3.1图解
    • 3.2代码实现
  • 4. 组合关系
    • 4.1图解
    • 4.2代码实现
  • 5. 泛化关系
    • 5.1图解
    • 5.2代码实现
  • 6. 实现关系
    • 6.1图解
    • 6.2代码实现

在UML中,共有四种关系:依赖、关联(聚合、组合)、泛化、实现。类与类之间的关系,从耦合度低到高排列:依赖关系、关联关系、聚合关系、组合关系、泛化关系、实现关系。
在这里插入图片描述

1. 依赖关系

1.1 图解

在UML中用带箭头的虚线表示依赖关系,箭头指向的是被依赖者。依赖关系是一种调用关系,发生在运行时,是一种临时的关系。
在这里插入图片描述

1.2代码实现

a) 在A中的方法中调用B中的方法
b) 将B作为参数传入A中,将B作为A中方法的返回值
c) A调用B中的静态方法

2. 关联关系

2.1图解

在UML中用带箭头的实线表示关联关系,箭头指向的是被关联者。关联关系是一种静态的关系,与运行时无关,由常识决定,比如师傅与徒弟、老师与学生等。从关联的方向分类,可分为:单向关联、双向关联、多重关联
在这里插入图片描述

2.2代码实现

被关联者常常以成员变量的形式存在于关联者类中

3. 聚合关系

3.1图解

在UML中用带空心菱形的实线表示两个类的聚合关系,聚合关系是一种整体与部分的关系,菱形所指的方向是整体,但部分可以脱离整体单独存在。比如雁群与大雁的关系,大雁可以脱离雁群这个整体单独存在。
在这里插入图片描述

3.2代码实现

部分常常作为整体的成员变量。

4. 组合关系

4.1图解

在UML中用带实心菱形的实线表示两个类的组合关系,组合关系也是一种整体与部分的关系,菱形所指的是整体,但部分不可脱离整体单独存在。比如人与大脑的关系,大脑不可脱离人这个整体而单独存在。
在这里插入图片描述

4.2代码实现

部分常常作为整体的成员变量。

5. 泛化关系

5.1图解

在UML中用带三角形的实线表示泛化关系,泛化关系是一种继承关系,三角形所指的是父类。
在这里插入图片描述

5.2代码实现

继承关系

6. 实现关系

6.1图解

在UML中用带三角形的虚线表示实现关系,实现关系表示是对接口的实现,三角形所指的是父类,在实现关系中父类为接口类,抽象类。
在这里插入图片描述

6.2代码实现

对接口的实现,对抽象类的实现。

这篇关于UML类图之间的关系与对应的代码关系的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1059294

相关文章

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

poj 1258 Agri-Net(最小生成树模板代码)

感觉用这题来当模板更适合。 题意就是给你邻接矩阵求最小生成树啦。~ prim代码:效率很高。172k...0ms。 #include<stdio.h>#include<algorithm>using namespace std;const int MaxN = 101;const int INF = 0x3f3f3f3f;int g[MaxN][MaxN];int n

day-51 合并零之间的节点

思路 直接遍历链表即可,遇到val=0跳过,val非零则加在一起,最后返回即可 解题过程 返回链表可以有头结点,方便插入,返回head.next Code /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}*

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

POJ1269 判断2条直线的位置关系

题目大意:给两个点能够确定一条直线,题目给出两条直线(由4个点确定),要求判断出这两条直线的关系:平行,同线,相交。如果相交还要求出交点坐标。 解题思路: 先判断两条直线p1p2, q1q2是否共线, 如果不是,再判断 直线 是否平行, 如果还不是, 则两直线相交。  判断共线:  p1p2q1 共线 且 p1p2q2 共线 ,共线用叉乘为 0  来判断,  判断 平行:  p1p

代码随想录冲冲冲 Day39 动态规划Part7

198. 打家劫舍 dp数组的意义是在第i位的时候偷的最大钱数是多少 如果nums的size为0 总价值当然就是0 如果nums的size为1 总价值是nums[0] 遍历顺序就是从小到大遍历 之后是递推公式 对于dp[i]的最大价值来说有两种可能 1.偷第i个 那么最大价值就是dp[i-2]+nums[i] 2.不偷第i个 那么价值就是dp[i-1] 之后取这两个的最大值就是d

pip-tools:打造可重复、可控的 Python 开发环境,解决依赖关系,让代码更稳定

在 Python 开发中,管理依赖关系是一项繁琐且容易出错的任务。手动更新依赖版本、处理冲突、确保一致性等等,都可能让开发者感到头疼。而 pip-tools 为开发者提供了一套稳定可靠的解决方案。 什么是 pip-tools? pip-tools 是一组命令行工具,旨在简化 Python 依赖关系的管理,确保项目环境的稳定性和可重复性。它主要包含两个核心工具:pip-compile 和 pip

D4代码AC集

贪心问题解决的步骤: (局部贪心能导致全局贪心)    1.确定贪心策略    2.验证贪心策略是否正确 排队接水 #include<bits/stdc++.h>using namespace std;int main(){int w,n,a[32000];cin>>w>>n;for(int i=1;i<=n;i++){cin>>a[i];}sort(a+1,a+n+1);int i=1

【每日一题】LeetCode 2181.合并零之间的节点(链表、模拟)

【每日一题】LeetCode 2181.合并零之间的节点(链表、模拟) 题目描述 给定一个链表,链表中的每个节点代表一个整数。链表中的整数由 0 分隔开,表示不同的区间。链表的开始和结束节点的值都为 0。任务是将每两个相邻的 0 之间的所有节点合并成一个节点,新节点的值为原区间内所有节点值的和。合并后,需要移除所有的 0,并返回修改后的链表头节点。 思路分析 初始化:创建一个虚拟头节点

html css jquery选项卡 代码练习小项目

在学习 html 和 css jquery 结合使用的时候 做好是能尝试做一些简单的小功能,来提高自己的 逻辑能力,熟悉代码的编写语法 下面分享一段代码 使用html css jquery选项卡 代码练习 <div class="box"><dl class="tab"><dd class="active">手机</dd><dd>家电</dd><dd>服装</dd><dd>数码</dd><dd