UML类图的几种关系对应java代码与IDEA类关系图

泛化(Generalization)

可以简单理解为继承关系
java代码

public class ClassA { ... }
public class ClassB extends ClassA { ... }

IDEA类关系图
在这里插入图片描述

实现(Realization)

一般是指接口和实现类之间的关系

public interface A {...}
public class B implements A { ... }

在这里插入图片描述

依赖(Dependency)

它描述一个对象的修改会导致另一个对象的修改这样的关系。当表示一个事物使用另一个事物时,就运用依赖。

public class A {
    public void doSomething(){
        B classB=new B();
        classB.test();
    }
}
public class B {
    public void test(){
        System.out.println("这里是test");
    }
}

在这里插入图片描述

public class A {
    public void doSomething(B b){
        b.test();
    }
}
public class B {
    public void test(){
        System.out.println("这里是test");
    }
}

在这里插入图片描述

注意:这个里少了create标记

聚合(Aggregation)

是一种包含关系,A类对象包含B类对象,B类对象的生命周期可以不依赖A类对象的生命周期,也就是说可以单独销毁A类对象而不影响B对象,比如课程与学生之间的关系。具体到Java代码就是下面这样

public class A1 {
  private B b;
  public A1(B b) {
    this.b = b;
  }
}
public class B {...}

在这里插入图片描述

从IDEA的类关系图中可以看到,存在依赖关系

public class A3 {
    private List<B> bList;
    public void doSomething(List<B> bList){
    }
}
public class B {...}

在这里插入图片描述

组合(Composition)

也是一种包含关系,是一种特殊的聚合关系。A类对象包含B类对象,B类对象的生命周期依赖A类对象的生命周期,B类对象不可单独存在,比如鸟与翅膀之间的关系。具体到Java代码就是下面这样:

public class A2 {
  private B b;
  public A2() {
    this.b = new B();
  }
}
public class B {...}

在这里插入图片描述

从IDEA的类关系图中可以看到,存在依赖关系

关联(Association)

是一种非常弱的关系,包含聚合、组合两种关系。具体到代码层面,如果B类对象是A类的成员变量,那B类和A类就是关联关系。具体到Java代码就是下面这样:

//聚合关系
public class A {
  private B b;
  public A(B b) {
    this.b = b;
  }
}
//或者 聚合关系
public class A {
    private List<B> bList;
    public void doSomething(List<B> bList){
    }
}
//或者 组合关系
public class A {
  private B b;
  public A() {
    this.b = new B();
  }
}
public class B {...}
  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值