码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • UML类图


    在写技术方案时经常忘了UML类图关系,多少有点不专业了 (立个flag,养成写技术方案的好习惯)因此把类图关系在这梳理一下。

    目录

    • 关系介绍
      • 泛化
      • 实现
      • 依赖
      • 关联
        • 单向关联
        • 双向关联
        • 自关联
      • 聚合
      • 组合
    • 总结

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

    关系介绍

    泛化

    也就是继承关系。实线+空心箭头连接,箭头从子类指向父类。
    在这里插入图片描述

    实现

    虚线+空心箭头连接,箭头从实现类指向抽象类。
    在这里插入图片描述

    依赖

    依赖的代码表现为局部变量、方法形参、静态方法的调用。
    在这里插入图片描述

    关联

    1. 是一种拥有关系,代码体现是成员变量,分为单向关联和双向关联,单向关联有箭头,双向关联无箭头。
    2. 后续讨论的聚合和组合都是关联关系的一种,三者的区别通常要考察上下文语义和逻辑来区分。

    单向关联

    实线箭头。
    在这里插入图片描述

    双向关联

    在这里插入图片描述

    自关联

    在这里插入图片描述

    聚合

    聚合关系是关联关系的一种,是强的关联关系,代码体现是成员变量。聚合关系是整体与部分的关系,且部分可以离开整体而单独存在。
    在这里插入图片描述

    组合

    组合关系是关联关系的一种,是比聚合关系还要强的关系,代码体现是成员变量。是整体与部分的关系,但部分不能离开整体而单独存在。它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。

    • 例如,公司和部门的关系,从语义上理解部门不能脱离公司单独存在;从生命周期上理解如果公司无了部门也无了。
      在这里插入图片描述

    总结

    • 各个关系的强弱顺序为:泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖;
    • 组合、聚合关系都是关联关系的一种,代码体现都是成员变量,但是各自差别需要根据上下文语义、逻辑、生命周期来区别。
  • 相关阅读:
    如何看待Unity新的收费模式?
    【全网首发】【Python】Python控制parrot ARDrone 2.0无人机
    索引初识
    python切片选取行和列
    linux系统gitlab的安装与使用
    DAY55 583. 两个字符串的删除操作 + 72. 编辑距离
    尚硅谷Vue系列教程学习笔记(12)
    【MySQL系列】Java的JDBC编程
    rem响应式布局
    2021-10《信息资源管理 02378》真卷(独家文字版),圈定章节考点+统计真题分布
  • 原文地址:https://blog.csdn.net/Serena0814/article/details/126606530
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号