当前位置: 首页 > news >正文

【设计模式】二、UML 类图概述

文章目录

  • 常见含义
  • 含义
    • 依赖关系(Dependence)
    • 泛化关系(Generalization)
    • 实现关系(Implementation)
    • 关联关系(Association)
    • 聚合关系(Aggregation)
    • 组合关系(Composition)

常见含义

在这里插入图片描述

含义

UML类图:类(对象)本身的组成和类(对象)之间的各种静态关系
依赖、泛化(继承)、实现、关联、聚合与组合

依赖关系(Dependence)

类中用到了对方,那么他们之间就存在依赖关系

  1. 类中用到了对方
  2. 如果是类的成员属性
  3. 如果是方法的返回类型
  4. 是方法接收的参数类型
  5. 方法中使用到

泛化关系(Generalization)

泛化关系实际上就是继承关系,依赖关系的特例

  1. 泛化关系实际上就是继承关系
  2. 如果 A 类继承了 B 类,我们就说 A 和 B 存在泛化关系

实现关系(Implementation)

是 A 类实现 B 接口,依赖关系的特例

关联关系(Association)

类与类之间的联系

聚合关系(Aggregation)

整体和部分的关系,整体与部分可以分开。聚合关系是关联关系的特例,具有关联的导航性与多重性,如:一台电脑由键盘(keyboard)、显示器(monitor),鼠标等组成;组成电脑的各个配件是可以从电脑上分离出来的,使用带空心菱形的实线来表示:

组合关系(Composition)

组合关系:也是整体与部分的关系,但是整体与部分不可以分开。
再看一个案例:在程序中我们定义实体:Person 与 IDCard、Head, 那么 Head 和 Person 就是 组合,IDCard 和Person 就是聚合。但是如果在程序中 Person 实体中定义了对 IDCard 进行级联删除,即删除 Person 时连同 IDCard 一起删除,那么 IDCard 和 Person 就是组合了.

http://www.lryc.cn/news/159715.html

相关文章:

  • 百望云亮相服贸会 重磅发布业财税融Copilot
  • vue 项目代码混淆配置(自定义插件适用)带配置项注释
  • 手写Spring:第7章-实现应用上下文
  • Java(三)逻辑控制(if....else,循环语句)与方法
  • 通过API接口实现数据实时更新的方案(InsCode AI 创作助手)
  • 分类预测 | MATLAB实现PCA-GRU(主成分门控循环单元)分类预测
  • el-dialog无法关闭
  • MATLAB算法实战应用案例精讲-【大模型】LLM算法(最终篇)
  • Mac brew -v 报错 fatal: detected dubious ownership in repository
  • Docker镜像、容器、仓库及数据管理
  • Java的选择排序、冒泡排序、插入排序
  • Vagrant + VirtualBox + CentOS7 + WindTerm 5分钟搭建本地linux开发环境
  • 关于Ajax
  • 打开转盘锁 -- BFS
  • 国标EHOME视频平台EasyCVR视频融合平台助力地下停车场安全
  • 【业务功能篇96】微服务-springcloud-springboot-认证服务-登录注册功能-Auth2.0-分布式session
  • 自造简易版音频进度条
  • 433MHz芯片在遥控应用市场中的优点
  • 基于Bert+Attention+LSTM智能校园知识图谱问答推荐系统——NLP自然语言处理算法应用(含Python全部工程源码及训练模型)+数据集
  • 慕尼黑主题活动!亚马逊云科技生成式AI全新解决方案,引领未来移动出行领域
  • android 离线语言合成(文字转语音)
  • 使用Fastchat部署vicuna大模型
  • 【2023高教社杯】C题 蔬菜类商品的自动定价与补货决策 问题分析、数学模型及python代码实现
  • 华为云云耀云服务器L实例评测|华为云云耀云服务器L实例评测使用
  • 【DS思想+堆贪心】CF595div3 D2
  • 2023-09-08 LeetCode每日一题(计算列车到站时间)
  • 软考-高级-信息系统项目管理第四版(完整24章全笔记)
  • 华为Mate 60和iPhone 15选哪个?
  • 嵌入式Linux驱动开发(同步与互斥专题)(二)
  • Docker安装部署Nexus3作为内网镜像代理缓存容器镜像