设计模式预热三 UML学习

什么是UML

UML(Unified Model Language),统一建模语言。

UML 定义了很多种,其中一种就可以用域表示Java类与类之间的关系,常用的如泛化、实现、关联、聚合、组合、依赖等。

当一个系统比较庞大时,适用UML图,能够形象生动的表示出各个功能类之间的依赖关系。

我们来学习一下常用的这几种关系。

1、泛化

泛化也就是继承

class A extends B

表示方式就是实线箭头

2、实现

实现就是类实现接口

class A implements B

表示方式就是虚线箭头

3、关联

一个类中持有另一个类作为成员变量

class ClassA {
    private ClassB b;

    public void setB(ClassB b) {
        this.b = b;
    }

}

class ClassB {

}

两个类是用不带箭头的实现相连表示关系

4、依赖

依赖和关联比较相似,区别在于B不在A中作为成员变量,而是作为方法的参数引入的。

class ClassA {

    public void useB(ClassB b) {
        
    }

}

class ClassB {

}

两个类是用不带箭头的实现相连表示关系

5、聚合

聚合是强关联的一种,他们的关系是在构造器中发生的,当类A在自己实例化时就会给关联的这个对象B赋值,好比汽车和车轮,建汽车的时候,车轮肯定也是要安装的。

public class ClassA {
    private ClassB b;

    public ClassA(ClassB b) {
        this.b = b;
    }

}

使用空心棱形箭头指向A类。

6、组合

组合也是强关联的一种,他们的关系好像是人和心脏,人从细胞发育完全,心脏也是同时生成的,二者不可分离,同时诞生。

public class ClassA {
    private ClassB b;

    public ClassA() {
        this.b = new ClassB();
    }

}

使用实心棱形箭头指向A类。