C++复习

UML类图之间的关系:依赖、关联、聚合、组合等

2018-06-04  本文已影响12人  凉拌姨妈好吃

1. UML类图

类图用于描述系统所包含的类和类之间的相互关系

1.1 类的图示
类图
类的属性及其表示
1.2 接口

正好复习一下接口的特性:

  1. 接口不能被实例化
  2. 实现类可以实现多个接口
  3. 实现类必须实现接口所有方法(抽象类除外)
  4. 接口中的常量都是静态常量
接口

2. 类间关系

2.1 依赖关系-Dependence

假设A类的改变影响了B类,那么B类就依赖于A类
特定事物改变可能影响到使用该事物的其他事物

什么时候用到依赖关系?

依赖关系的UML图示
箭头由依赖方指向被依赖方,如下就是Driver依赖于Car类。

依赖关系图示
2.2 关联关系-Dependence

一个类对象与另一个类对象有联系,在C++/Java等实现中,通常将一个类的对象作为另一个类的属性。

2.2.1 双向关联

默认情况下,关联关系都是双向的。
exp:数据库管理员管理数据库,某些数据库被特定管理员管理


双向关联

exp:用户对应对个订单,订单对应特定用户

2.2.2 单向关联

一方持有另外一方的实例,如学生对应成绩表、用户表的地址对应地址表


单向关联
2.2.3 自关联

类的属性类型为类本身,如链表、树结构


自关联
2.2.4 多重性关联-Multiplicity

两对象在数量上对应的关系,如一对多、多对一、多对多等


多重性关联
2.2 聚合关系

表示整体与部分的关系,部分可以脱离整体存在,如图书馆和图书。
通常都是定义了一个整体,然后去思考它的内部结构,就会发现一些成员类,这些成员类与整体的关系就是聚合关系。

从代码实现角度,部分对象不由整体对象创建,而是通过整体对象的带参构造函数或者set方法传入。

表现方式:整体指向部分,空心菱形靠近整体

聚合关系
2.3 组合关系

也是整体与部分之间的关系,但是整体会影响到部分的生存周期,只要整体对象不存在了,部分对象也随之消亡。如,公司和部门、猫和猫的腿

表现形式:整体指向部分,实心菱形靠近整体

组合关系
2.4 泛化关系/继承关系

用于描述父类和子类之间的关系,如Teacher继承People等
表现形式:带有空心三角形的实线指向父类

泛化关系
2.5 实现关系

接口与实现接口的类之间的关系。
表现形式:带空心三角形的虚线指向接口

实现关系

参考资料:
UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现
UML(一) 类图详解

上一篇下一篇

猜你喜欢

热点阅读