类之间的关系----UML类图
在UML类图中,类与类之间存在6种关系分别为依赖、泛化(继承)、实现、关联、聚合与组合。
文章目录
- 类之间的关系----UML类图
- 1. 依赖(Dependency)
- 2. 泛化(也叫继承)(Generalization)
- 3. 实现(Implementation)
- 4. 关联(Association)
- 5. 聚合(Aggregation)
- 6. 组合(Composition)
1. 依赖(Dependency)
只要在类中用到了对方,那么它们之间就存在依赖关系。
以下五种情况均可以构成依赖关系:
- 类中用到了对方。
- 如果是类的成员属性。
- 如果是方法的返回类型。
- 是方法接收的参数类型。
- 方法中使用到。
2. 泛化(也叫继承)(Generalization)
泛化关系实际上就是继承关系,它是依赖关系的特例。
如果A类继承了B类,那么我们就可以说A和B存在泛化关系。
3. 实现(Implementation)
实现关系实际上就是A类实现B类,它也是依赖关系的特例。
4. 关联(Association)
关联关系实际上就是类与类之间的联系,它也是依赖关系的特例。
关联具有导航性:即双向关系和单向关系。
关联具有多重性:如"1"(表示有且仅有一个),“0…”(表示0个或者多个),“0,1”(表示0个或者1个),“n…m”(表示n到m个都可以),“m…*”(表示至少m个)。
单向一对一关系如以下代码:
public class Person{
private IDCard idCard;
}
public class IDCard{}
双向一对一关系如以下代码:
public class Person{
private IDCard idCard;
}
public class IDCard{
private Person person;
}
5. 聚合(Aggregation)
聚合关系表示的是整体和部分的关系,整体和部分可以分开。聚合关系是关联关系的特例,所以他具有关联的导航性和多重性。
如:一台电脑有键盘(keybo ard)、显示器(monitor),鼠标等组成,组成电脑的各个配件是可以从电脑上分离出来的,使用带空心菱形的实现来表示,近似于自己组装了一台电脑。
6. 组合(Composition)
组合关系表示整体与部分不可以分开,代码表示如下:
public class Computer{
private Mouse mouse = new Mouse(); //鼠标
private Monitor monitor = new Monitor(); //键盘
}
实例化产生Computer电脑类时,鼠标和键盘也直接产生,类似于买了一台品牌原装电脑。