- 泛化(Generalization)
- 实现(Realization)
- 关联(Association)
- 聚合(Aggregation)
- 组合(Composition)
- 依赖(Dependency)
选择【Model types】-【Object-Oriented Model】-【Class Diagram】
泛化(Generalization)
子类继承父类,箭头指向:带三角箭头的实线,箭头指向父类
实现(Realization)
实现类继承接口,箭头指向:带三角箭头的虚线,箭头指向接口
关联(Association)
是一种拥有的关系, 它使一个类知道另一个类的属性和方法,这个概念听起来感觉有点蒙,其实吧,就是一个对象A中持有对象B的引用,这样对象B中的属性和方法是不是A也知道了,就是这个意思,在实际的代码中体现在一个类上声明一个成员变量
类A中有类B的引用,箭头及指向:带普通箭头的实心线,指向被拥有者
聚合(Aggregation)
是整体与部分的关系, 且部分可以离开整体而单独存在,如车和轮胎是整体和部分的关系,轮胎离开车仍然可以存在
聚合关系是关联关系的一种,是强的关联关系;关联和聚合在语法上无法区分,必须考察具体的逻辑关系
比如一个学校有高中部和初中部,这些学生加起来都是属于这个学校的,那么从聚合的概念上讲整体就是这个学校,部分就是学生了,且部分可以离开整体而单独存在,这意思是说学生可以转校去别的学校,但是这个学校还是存在的,不会因为一个学生转校了找个学校就没了,
箭头指向:带空心菱形的实心线,菱形指向整体
组合(Composition)
是整体与部分的关系, 但部分不能离开整体而单独存在. 如公司和部门是整体和部分的关系, 没有公司就不存在部门
组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期
代码体现:成员变量
箭头指向:带实心菱形的实线,菱形指向整体
依赖(Dependency)
是一种使用的关系, 即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖
代码表现:局部变量、方法的参数或者对静态方法的调用
箭头指向:带箭头的虚线,指向被使用者