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,比以上关系都弱。
使用虚线+箭头表示,箭头指向表示依赖对象的类。

如:
人 -----> 电脑

实例

在这里插入图片描述

  • 依赖(dependency,uses-a):动物依赖(使用)于氧气和水,拥有生命,能吃能动和繁殖;
  • 泛化(继承,generalization,inheritance,is-a):鸟类是动物的一种(泛化/继承),有动物的属性和方法,,此外还有自己的属性(羽毛);
  • 组合(Composition,contains-a):鸟类还拥有(组合)翅膀(鸟类不能没有翅膀)。
  • 实现(Realization,implement,is-a):大雁继承自鸟类和飞行接口类,实现自己的飞行方法。鸭子继承自鸟类,唐老鸭继承自鸭子,还实现了说话的方法。
  • 聚合(Aggregation,has-a):雁群由大雁聚集而成(大雁可以离开雁群)。
  • 关联(Association,knows-a):企鹅继承自鸟类,对气候有关联关系。
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值