跳转至

UML

  • uml关系线图和基数图例如下

1 接口

java、go语言中有interface关键字,c++中并没有interface关键字。但在c++中接口相当于是抽象类(含有纯虚函数的类)。

2 泛化和实现

  1. 实现:是从接口派生,在java中就是使用关键字implements
  2. 泛化:是从某个派生,在java中就是使用关键字extends

3 聚合和组合

  1. 聚合:是整体与部分的关系, 且部分可以离开整体而单独存在. 如车和轮胎是整体和部分的关系, 轮胎离开车仍然可以存在.
  2. 组合:是整体与部分的关系, 但部分不能离开整体而单独存在. 如公司和部门是整体和部分的关系, 没有公司就不存在部门

4 关联和依赖

  1. 关联:是一种拥有的关系, 它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子。关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头
  2. 依赖:是一种使用的关系,  即一个类的实现需要另一个类的协助, 所以要尽量不使用双向的互相依赖.