UML-类图
基础图例
类 Class
概览
方法与属性前缀
-
+ public
-
- private
-
_ static
-
# protected , friendly
-
~ 默认
代码展示
public class Person {
private String name;
private int age;
int sex;
protected int iq;
public int eq;
public String getName() {
return name;
}
public int getAge() {
return age;
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
static Person getInstance() {
return new Person();
}
}
接口 Interface
概览
代码展示
public interface Behaver {
public void run();
public void walk();
}
枚举即修改<<>>中为枚举即可
包 Package
UML中的一个包直接对应于Java中的一个包
概览
类之间关系
泛化
泛化(Generalization)表示类与类之间的继承关系,接口与接口之间的继承关系,或类对接口的实现关系
继承 extend
概览
代码展示
public class Animal {
public void breathe() {
System.out.println("breathe");
}
}
public class Dog extends Animal {
public void run() {
System.out.println("run");
}
}
实现 implement
概览
代码展示
public interface Behaver {
public void walk();
}
public class Dog implements Behaver {
@Override
public void walk() {
System.out.println("dog walk");
}
}
依赖 Dependency
对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系
概览
代码实现
public class Food {
private String foodName;
public String getFoodName() {
return foodName;
}
public void setFoodName(String foodName) {
this.foodName = foodName;
}
}
public class Dog {
public void eat(Food food) {
System.out.println("dog eat"+food.getFoodName());
}
}
关联 Association
对于两个相对独立的对象,当一个对象的实例与另一个对象的一些特定实例存在固定的对应关系时,这两个对象之间为关联关系
重点是强调对象之间的关系
单向关联
单向关联就是一方持有另一方类型的成员变量
概览
代码实现
public class School {
private String name;
}
public class Student {
private School teacher;
}
双向关联
双向关联就是双方各自持有对方类型的成员变量
概览
代码实现
public class Teacher {
private List<Student> studentList;
}
public class Student {
private Teacher teacher;
}
自关联
概览
代码实现
public class Node {
private Node childNode;
}
聚合 Aggregation
表示一种弱的‘拥有’关系,即has-a的关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分。 两个对象具有各自的生命周期
概览
代码实现
public class Chair {
public void seatDown() {
System.out.println("nice!");
}
}
public class Bus {
private Chair chair;
public void doRun() {
if(chair!=null){
System.out.println("travel is nice!")
}
}
}
组合 Composition
组合是一种强的‘拥有’关系,是一种contains-a的关系,体现了严格的部分和整体关系,部分和整体的生命周期一样
概览
代码实现
public class Controller {
private TestService testService;
public void work() {
testService.work();
}
}
public class Service {
public void work() {
System.out.println("work");
}
}