C++UML类图的关系

在C++中UML主要用来描述软件中类和对象以及它们的静态关系。类图主要是用来显示系统中的类、接口以及它们之间的静态结构和关系的一种静态模型。

类图的3个基本组件:

  • 类名;
  • 属性;
  • 方法;

可见性(visibility):

  • + public
  • - private
  • # protected

实例个数(multiplicity)

  • 0..1, 无实例,或者1个实例;
  • 1, 只有一个实例;
  • 0..*, 任意个实例;
  • 1..*, 1个以上实例;

常见的UML类图关系

泛化(Generalization)Inheritance (is-a)

是一种类与类之间的继承关系,即is-a。
使用实线+空心三角箭头表示,空心箭头指向基类。

如:
大雁 ----------|> 鸟类

实现(Realization)Implement (is-a)

是实现类与接口之间的关系,也是is-a的关系。
使用虚线+空心三角箭头表示,空心箭头指向基类。

如:
大雁飞 - - - - -|> 飞翔

关联(Association) (knows-a)

类与类之间的强依赖关系,即knows-a的关系,它使一个类知道另一个类的属性和方法。
关系比依赖更强,不存在依赖关系的偶然性、也不是临时性的,一般是长期性的,而且双方一般是平等关系。
使用实线+箭头表示,箭头指向关联类。

如:
学生 ------------> 课程
企鹅 ------------> 气候

聚合(Aggregation)(has-a)

关联关系的特例,体现整体与部分的关系,即has-a,整体与部分可分离,有各自的生命周期。
使用空心菱形+实线+箭头表示,箭头指向表示部分的类。

如:
雁群 <>----------> 大雁

组合 (Composition) (contains-a)

关联关系的特例,体现不可分离的整体与部分关系,即contains-a,也称强聚合。整体与部分不可分离,没有整体就没有部分。
使用实心菱形+实线+箭头表示,箭头指向表示部分的类。

如:
鸟 <+>----------> 翅膀

依赖 (Dependency) (uses-a)

偶然的、临时的、较弱的使用关系,即uses-a,比以上关系都弱。
使用虚线+箭头表示,箭头指向表示依赖对象的类。

如:
人 -----> 电脑

C++UML类图的关系相关推荐

  1. UML类图和关系--idea使用PlantUML插件画类图

    UML类图和关系 类图 - 依赖关系(Dependence) **应用案例** **Java代码** **UML类图 + PlantUML代码** **小结** 类图 - 泛化关系(generaliz ...

  2. UML类图-六种关系详解

    UML基本介绍 UML--Unified modeling language UML(统一建模语言),是一种用于软件系统分析和设计的语言工具,它用于帮助软件开发人员进行思考和记录思路的结果 UML本身 ...

  3. 用红色警戒的单位来帮助我们学习UML类图和关系图

    回顾回顾UML类图的画法,争取自己画出的图能让其他人看得懂. 我为什么要借助红色警戒这个游戏来说明UML类图的画法呢,因为我觉得大家都玩过,对他们的内容都有一个清晰的认识,其次是不想让我的文章太晦涩难 ...

  4. 韩老师设计模式1:7原则。依赖关系3种方法。UML类图6关系。

    面试 1. 原型模式 1)有请使用UML类图画出原型模式核心角色2) 原型设计模式的深拷贝和浅拷贝是什么,并写出深拷贝的两种方式的源码(重写 clone方法实现深拷贝. 使用序列化来实现深拷贝)3) ...

  5. UML类图--依赖关系

    依赖--Dependency:是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖. UML展示: 箭头指向:带箭头的虚线,指向被使用者 代码展示: // 人类-类 pu ...

  6. 总结 一下UML 类图的关系

    1,实线三角 表示 泛化  是一种继承关系,它指定了子类如何特化父类的所有特征和行为 2,虚线三角 表示 实现  是一种类与接口的关系,表示类是接口所有特征和行为的实现 3,空心菱形 表示 聚合 是整 ...

  7. 【设计模式】UML类图关系与符号

    文章目录 一.UML简介 1.1 UML类图常用关系 1.2 UML模型结构 1.3 UML类的表示 二.类之间的关系 2.1 泛化(Generalization) 2.2 实现(Realizatio ...

  8. 用gif图展示UML中箭头和线条的含义,及搞懂UML类图、时序图和用例图

    前言 新进入一家公司,应对 日常的软件开发工作和交流,要能看懂别人写的代码各个类之间的关系,那就需要您能看懂类图uml中各个类之间的线条.箭头代表什么意思? UML的类图中,一共有以下六大关系: 泛化 ...

  9. 各种设计模式的UML类图

    一.单一职责原则 就一个类而言,应该仅有一个引起它变化的原因. 如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力.这种耦合会导致脆弱他的设 ...

最新文章

  1. 为什么不可以使用哈曼顿距离_哈曼卡顿音乐琉璃1代2代评测,不但抓耳,还让你视线也难离开...
  2. python图像直方图与直方图均衡化
  3. python读取json配置文件_Python简单读取json文件功能示例
  4. MFC对话框中的工具栏、状态栏设计小结
  5. Unity3d中使用自带动画系统制作下雨效果(一)
  6. 工作与生活平衡(2)运动也需要执行力
  7. gvim安装及其配置
  8. IOS-UISearchBar
  9. window多台服务器文件同步,SyncToy 两台Windows电脑文件同步
  10. Ant Design Upload 文件上传功能
  11. Android 解决华为手机图片底色变绿问题
  12. 面部捕捉技术_新功能要来!苹果收购面部捕捉技术公司Faceshift
  13. 提取自制VOC数据集中测试集的标签和图像
  14. ncnn报无法将参数 1 从“std::string”转换为“const ncnn::DataReader
  15. 509.斐波那契数列
  16. 分布式Session共享和单点登录实现
  17. 高斯滤波及高斯卷积核C++实现
  18. 苏州计算机活动,CCF苏州成功举办走进姑苏实验室活动
  19. 导购提成怎么算_小公司怎么给销售算提成才合理?
  20. Android studio 集成Unity

热门文章

  1. 徐州智伴机器人_智伴机器人和天猫精灵功能方面有什么区别?
  2. Facade (外观)模式
  3. python 椭圆曲线_椭圆曲线double和add在python中的实现
  4. PictureSelector 2.0 Android Q 适配之旅。
  5. Default encoder for format image2 (codec png) is probably disabled. Please choose an encoder manuall
  6. 计算机c语言lms算法,lms算法(毕业论文).doc
  7. 实现模糊查询时对特殊字符进行处理和对查询结果进行处理
  8. Codeforces Round #616 (Div. 2)B. Array Sharpening
  9. not in和or 出的问题
  10. 【vm】虚拟机版本管理