类之间的关系----UML类图

在UML类图中,类与类之间存在6种关系分别为依赖、泛化(继承)、实现、关联、聚合与组合。


文章目录

  • 类之间的关系----UML类图
  • 1. 依赖(Dependency)
  • 2. 泛化(也叫继承)(Generalization)
  • 3. 实现(Implementation)
  • 4. 关联(Association)
  • 5. 聚合(Aggregation)
  • 6. 组合(Composition)


1. 依赖(Dependency)

Android 类图 调用关系 类图里的关系_UML

只要在类中用到了对方,那么它们之间就存在依赖关系

以下五种情况均可以构成依赖关系

  1. 类中用到了对方。
  2. 如果是类的成员属性
  3. 如果是方法的返回类型
  4. 是方法接收的参数类型
  5. 方法中使用到
2. 泛化(也叫继承)(Generalization)

Android 类图 调用关系 类图里的关系_泛化_02

泛化关系实际上就是继承关系,它是依赖关系的特例。

如果A类继承了B类,那么我们就可以说A和B存在泛化关系

3. 实现(Implementation)

Android 类图 调用关系 类图里的关系_Android 类图 调用关系_03

实现关系实际上就是A类实现B类,它也是依赖关系的特例

4. 关联(Association)

Android 类图 调用关系 类图里的关系_泛化_04

关联关系实际上就是类与类之间的联系,它也是依赖关系的特例。

关联具有导航性:即双向关系和单向关系

关联具有多重性:如"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)

Android 类图 调用关系 类图里的关系_Android 类图 调用关系_05

聚合关系表示的是整体和部分的关系整体和部分可以分开聚合关系是关联关系的特例,所以他具有关联的导航性和多重性

如:一台电脑键盘(keybo ard)、显示器(monitor)鼠标等组成,组成电脑的各个配件是可以从电脑上分离出来的,使用带空心菱形的实现来表示,近似于自己组装了一台电脑。

6. 组合(Composition)

Android 类图 调用关系 类图里的关系_Android 类图 调用关系_06

组合关系表示整体与部分不可以分开,代码表示如下:

public class Computer{
	private Mouse mouse = new Mouse();		//鼠标
	private Monitor monitor = new Monitor();	//键盘	
}

实例化产生Computer电脑类时,鼠标和键盘也直接产生,类似于买了一台品牌原装电脑。