C++UML类图的关系
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类图的关系相关推荐
- UML类图和关系--idea使用PlantUML插件画类图
UML类图和关系 类图 - 依赖关系(Dependence) **应用案例** **Java代码** **UML类图 + PlantUML代码** **小结** 类图 - 泛化关系(generaliz ...
- UML类图-六种关系详解
UML基本介绍 UML--Unified modeling language UML(统一建模语言),是一种用于软件系统分析和设计的语言工具,它用于帮助软件开发人员进行思考和记录思路的结果 UML本身 ...
- 用红色警戒的单位来帮助我们学习UML类图和关系图
回顾回顾UML类图的画法,争取自己画出的图能让其他人看得懂. 我为什么要借助红色警戒这个游戏来说明UML类图的画法呢,因为我觉得大家都玩过,对他们的内容都有一个清晰的认识,其次是不想让我的文章太晦涩难 ...
- 韩老师设计模式1:7原则。依赖关系3种方法。UML类图6关系。
面试 1. 原型模式 1)有请使用UML类图画出原型模式核心角色2) 原型设计模式的深拷贝和浅拷贝是什么,并写出深拷贝的两种方式的源码(重写 clone方法实现深拷贝. 使用序列化来实现深拷贝)3) ...
- UML类图--依赖关系
依赖--Dependency:是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖. UML展示: 箭头指向:带箭头的虚线,指向被使用者 代码展示: // 人类-类 pu ...
- 总结 一下UML 类图的关系
1,实线三角 表示 泛化 是一种继承关系,它指定了子类如何特化父类的所有特征和行为 2,虚线三角 表示 实现 是一种类与接口的关系,表示类是接口所有特征和行为的实现 3,空心菱形 表示 聚合 是整 ...
- 【设计模式】UML类图关系与符号
文章目录 一.UML简介 1.1 UML类图常用关系 1.2 UML模型结构 1.3 UML类的表示 二.类之间的关系 2.1 泛化(Generalization) 2.2 实现(Realizatio ...
- 用gif图展示UML中箭头和线条的含义,及搞懂UML类图、时序图和用例图
前言 新进入一家公司,应对 日常的软件开发工作和交流,要能看懂别人写的代码各个类之间的关系,那就需要您能看懂类图uml中各个类之间的线条.箭头代表什么意思? UML的类图中,一共有以下六大关系: 泛化 ...
- 各种设计模式的UML类图
一.单一职责原则 就一个类而言,应该仅有一个引起它变化的原因. 如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力.这种耦合会导致脆弱他的设 ...
最新文章
- 为什么不可以使用哈曼顿距离_哈曼卡顿音乐琉璃1代2代评测,不但抓耳,还让你视线也难离开...
- python图像直方图与直方图均衡化
- python读取json配置文件_Python简单读取json文件功能示例
- MFC对话框中的工具栏、状态栏设计小结
- Unity3d中使用自带动画系统制作下雨效果(一)
- 工作与生活平衡(2)运动也需要执行力
- gvim安装及其配置
- IOS-UISearchBar
- window多台服务器文件同步,SyncToy 两台Windows电脑文件同步
- Ant Design Upload 文件上传功能
- Android 解决华为手机图片底色变绿问题
- 面部捕捉技术_新功能要来!苹果收购面部捕捉技术公司Faceshift
- 提取自制VOC数据集中测试集的标签和图像
- ncnn报无法将参数 1 从“std::string”转换为“const ncnn::DataReader
- 509.斐波那契数列
- 分布式Session共享和单点登录实现
- 高斯滤波及高斯卷积核C++实现
- 苏州计算机活动,CCF苏州成功举办走进姑苏实验室活动
- 导购提成怎么算_小公司怎么给销售算提成才合理?
- Android studio 集成Unity
热门文章
- 徐州智伴机器人_智伴机器人和天猫精灵功能方面有什么区别?
- Facade (外观)模式
- python 椭圆曲线_椭圆曲线double和add在python中的实现
- PictureSelector 2.0 Android Q 适配之旅。
- Default encoder for format image2 (codec png) is probably disabled. Please choose an encoder manuall
- 计算机c语言lms算法,lms算法(毕业论文).doc
- 实现模糊查询时对特殊字符进行处理和对查询结果进行处理
- Codeforces Round #616 (Div. 2)B. Array Sharpening
- not in和or 出的问题
- 【vm】虚拟机版本管理