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


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

    目录

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

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

    关系介绍

    泛化

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

    实现

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

    依赖

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

    关联

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

    单向关联

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

    双向关联

    在这里插入图片描述

    自关联

    在这里插入图片描述

    聚合

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

    组合

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

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

    总结

    • 各个关系的强弱顺序为:泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖;
    • 组合、聚合关系都是关联关系的一种,代码体现都是成员变量,但是各自差别需要根据上下文语义、逻辑、生命周期来区别。
  • 相关阅读:
    清华chatGLM2-6B windows本地安装教程
    Clickhouse 学习笔记(6)—— ClickHouse 分片集群
    如何使用Java反射机制获取类的所有构造函数呢?
    Allegro批量剪断走线操作
    运放:运放输入电压
    Unity3D 如何制作带厚度的透明图片详解
    duffing方程matlab绘制
    TEMU自养号测评系统如何搭建,有哪些要求
    c++基础(八)——类对象作为类成员
    2022-06-27 数据结构与算法-递归、冒泡、插入、选择排序
  • 原文地址:https://blog.csdn.net/Serena0814/article/details/126606530
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号