UML图

1. 什么是UML图

UML(Unified Modeling Language)统一建模语言,是一种开放的方法,用于说明、可视化、构建和编写一个正在开发的、面向对象的、软件密集系统的制品的开放方法。

2. UML类图的组成

UML类图由三部分组成:类名、属性和方法。

eg:

class Person {

    private String name = "personName";
    private int age;

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }

}

类名:类名就是类的名称,如果是抽象类的话就在右下角加一个(Abstract)标识。

属性:就是类的成员变量,可见性表示为public(+)、protected(#)、private(-)。在UML类图中可以表示属性的可见性、名称、类型和默认值,格式如下([] 里面的表示可选,可以有可以没有):

可见性  名称:类型 = 默认值

方法:可见性同属性,格式如下:

可见性  名称(参数列表) : 返回类型

3. UML类图关系

UML类图之间的主要关系有6种:继承关系,实现关系,依赖关系,关联关系,聚合关系,组合关系。

3.1 继承关系

子类和父类之间的关系,可以用带空心三角形的实线表示。

如果一个Teacher类继承上面的Person类:

class Teacher extends Person {

    private int teacherNum;

    public String teach() {

        return "teaching";

    }
}

UML图可以表示为:

3.2 实现关系

类和接口之间的关系,可以用带空心三角形的虚线表示。

如下一个Dog类和一个Cat类实现了Animal接口:

public interface Animal {
    public void eat();
}
public class Dog implements Animal {
    @Override
    public void eat() {
        System.out.println("狗狗吃狗粮");
    }
}
public class Cat implements Animal {
    @Override
    public void eat() {
        System.out.println("咪咪吃猫粮");
    }
}

UML可以表示为:

3.3 依赖关系

3.4 关联关系

3.5 聚合关系

聚合关系使用空心菱形表示。

聚合是一种特殊的关联(Association)形式,表示两个对象之间的所属(has-a)关系。所有者对象称为聚合对象,它的类称为聚合类;从属对象称为被聚合对象,它的类称为被聚合类。例如,一个公司有很多员工就是公司类Company和员工类Employee之间的一种聚合关系。被聚合对象和聚合对象有着各自的生命周期,即如果公司倒闭并不影响员工的存在。

比如:

public class Company {
    private List<Employee> employees;
}

public class Employee {
    private String name;   
}

UML可以表示为:

3.6 组合关系

组合关系使用实心菱形表示。

聚合是一种较弱形式的对象包含(一个对象包含另一个对象)关系。较强形式是组合(Composition). 在组合关系中包含对象负责被包含对象的创建以及生命周期,即当包含对象被销毁时被包含对象也会不复存在。例如一辆汽车拥有一个引擎是汽车类Car与引擎类Engine的组合关系。

比如:

public class Car {
    private final Engine engine = new Engine();       
}

class Engine {
    private String type;
}

UML可以表示为:

https://blog.csdn.net/garfielder007/article/details/54427742

Last updated