【面向对象编程思想】- 类图中类与类之间的关系

类之间关联关系的种类

在这里插入图片描述
按照依赖强度排序:
(强)实现 == 泛化 > 组合 > 聚合 > 关联 > 依赖(弱)

关系之间的区别

实现

在这里插入图片描述
代码描述:B 实现了接口 A

public interface A {
    void test();
}

public class B implements A{
    @Override
    public void test() {
        
    }
}

泛化

在这里插入图片描述
代码描述:B 继承了 A

public class A {
    
}
public class B extends A{

}

组合

在这里插入图片描述
代码描述:A 中的属性有 B 且 A 的构造方法入参中没有 B。B 实例化时机由 A 控制,也就是 B 不能单独于 A 存在。

public class A {
    private B b;

    public A() {
        this.b = new B();
    }

    public void function(){
        b.function();
    }
}

public class B {
    public void function(){

    }
}

聚合

在这里插入图片描述
代码描述:A 中的属性有 B 且 A 的构造方法入参中有 B。B 实例化的时机不交给 A 控制,也就是 B 可以单独于 A 存在。

public class A {
    private B b;

    public A(B b) {
        this.b = b;
    }

    public void function(){
        b.function();
    }
}

public class B {
    public void function(){

    }
}

关联

在这里插入图片描述
代码描述:只要满足 B 是 A 的一个属性的要求即可,对于 B 生命周期控制没有要求。

public class A {
    private B b;
    
    public void function(){
        b.function();
    }
}

public class B {
    public void function(){

    }
}

依赖

在这里插入图片描述
代码描述:B 不是 A 的属性。

public class A {
    public void function(B b){
        b.function();
    }
}

public class B {
    public void function(){

    }
}
发布了7 篇原创文章 · 获赞 0 · 访问量 55

猜你喜欢

转载自blog.csdn.net/m0_46857718/article/details/105447637