UML类图中的六大关系
六种关系
- 关联(association)
- 聚合(aggregation)
- 组合(composition)
- 依赖(dependency)
- 泛化(generalization)继承(inheritance)
- 实现(realization)
关联(association)
简单理解就是类里面作为属性引用另一个类 ```java class Car { // 做为属性引用另一个类MyCar MyCar myCar; } class MyCar {
}
![](https://cdn.nlark.com/yuque/__mermaid_v3/39b6a7b301a9446e590b3c3eb324ac69.svg#lake_card_v2=eyJ0eXBlIjoibWVybWFpZCIsImNvZGUiOiJjbGFzc0RpYWdyYW1cblx0Q2FyIC0tPiBNeUNhciA6IOWFs-iBlOWFs-ezuyIsInVybCI6Imh0dHBzOi8vY2RuLm5sYXJrLmNvbS95dXF1ZS9fX21lcm1haWRfdjMvMzliNmE3YjMwMWE5NDQ2ZTU5MGIzYzNlYjMyNGFjNjkuc3ZnIiwiaWQiOiIwN2Y5YTRjNyIsImNhcmQiOiJkaWFncmFtIn0=)
<a name="dJsgj"></a>
# 依赖关系
依赖关系的理解为某个类中的方法通过传参的方式依赖另一个类
```java
class Person {
void add(PersonInfo info);
}
class PersonInfo {}
聚合关系
聚合关系表示整体和部分,一个类的属性使用保存很多另一个类的对象
class Scholl {
// 一个学校有很多学生
List<Student> students;
}
class Student{
}
组合关系
相比聚合更紧密的关系,不能单独共存。例如:一个人,有胳膊、眼睛。所以胳膊、眼睛和人是组合关系,胳膊和眼睛不能单独存在
class Person{
Arm arm;
Eye eye;
}
class Arm{}
class Eye{}
泛化关系
泛化关系为类之间的继承关系,一个类继承另一个类就表示为泛化关系
abstract class AbstractFactory{
void create();
}
class DogFactory extend AbstractFactory {
}
class CatFactory extend AbstractFactory {
}
实现关系
实现关系表示一个类实现一个接口的一种关系
interface IPerson{
void add();
}
class PersonImpl implements IPerson {
void add(){}
}