UML类图中的六大关系

六种关系

  1. 关联(association)
  2. 聚合(aggregation)
  3. 组合(composition)
  4. 依赖(dependency)
  5. 泛化(generalization)继承(inheritance)
  6. 实现(realization)

    关联(association)

    简单理解就是类里面作为属性引用另一个类 ```java class Car { // 做为属性引用另一个类MyCar MyCar myCar; } class MyCar {

}

  1. ![](https://cdn.nlark.com/yuque/__mermaid_v3/39b6a7b301a9446e590b3c3eb324ac69.svg#lake_card_v2=eyJ0eXBlIjoibWVybWFpZCIsImNvZGUiOiJjbGFzc0RpYWdyYW1cblx0Q2FyIC0tPiBNeUNhciA6IOWFs-iBlOWFs-ezuyIsInVybCI6Imh0dHBzOi8vY2RuLm5sYXJrLmNvbS95dXF1ZS9fX21lcm1haWRfdjMvMzliNmE3YjMwMWE5NDQ2ZTU5MGIzYzNlYjMyNGFjNjkuc3ZnIiwiaWQiOiIwN2Y5YTRjNyIsImNhcmQiOiJkaWFncmFtIn0=)
  2. <a name="dJsgj"></a>
  3. # 依赖关系
  4. 依赖关系的理解为某个类中的方法通过传参的方式依赖另一个类
  5. ```java
  6. class Person {
  7. void add(PersonInfo info);
  8. }
  9. class PersonInfo {}

聚合关系

聚合关系表示整体和部分,一个类的属性使用保存很多另一个类的对象

  1. class Scholl {
  2. // 一个学校有很多学生
  3. List<Student> students;
  4. }
  5. class Student{
  6. }

组合关系

相比聚合更紧密的关系,不能单独共存。例如:一个人,有胳膊、眼睛。所以胳膊、眼睛和人是组合关系,胳膊和眼睛不能单独存在

  1. class Person{
  2. Arm arm;
  3. Eye eye;
  4. }
  5. class Arm{}
  6. class Eye{}

泛化关系

泛化关系为类之间的继承关系,一个类继承另一个类就表示为泛化关系

  1. abstract class AbstractFactory{
  2. void create();
  3. }
  4. class DogFactory extend AbstractFactory {
  5. }
  6. class CatFactory extend AbstractFactory {
  7. }

实现关系

实现关系表示一个类实现一个接口的一种关系

  1. interface IPerson{
  2. void add();
  3. }
  4. class PersonImpl implements IPerson {
  5. void add(){}
  6. }

关系类图总结