对象关系设计
泛化关系(generalization也叫继承关系)
在UML类图中泛化关系使用空心三角+实线来表示
类与类之间的泛化关系
接口与接口之间的泛化关系
实现关系(realization)
接口与实现类的关系, 在UML中实现关系使用空心三角+虚线来表示
依赖关系(dependent)
表示一个A类依赖于另一个B类的定义,如果A对象离开了B 对象,A 对象就不能正常编译,则A 对象依赖B 对象(A 类中使用到了B 对象)。
分为三种情况: 作为成员变量依赖 作为方法参数依赖 作为方法内部的局部变量依赖
在 UML 中依赖关系使用虚线箭头表示
public class EmployeeServiceImpl implements IEmployeeService {
private EmployeeMapper employeeMapper; //成员变量依赖
public PageResult query(QueryObject qo) { //作为方法参数依赖
return new PageResult();// 作为方法内部的局部变量依赖
}
}
关联关系(association)
A对象依赖B对象,并且把B作为A的一个成员变量,则A和B存在关联关系
(对应为依赖关系的情况一,所以关联关系是一种特殊的依赖关系)
在 UML 中关联关系使用实线箭头表示。
@Getter
@Setter
@ToString
public class Department{
private Long id;
private String name;
}
@Getter
@Setter
@ToString(exclude = "dept")
public class Employee{
private Long id;
private String name;
private Department dept;
}
聚合关系(aggregation)
表示整体和个体的关系(A has a B),整体和个体之间可以相互独立存在(比如手机和手机卡)
在UML 中聚合关系使用空心菱形+实线箭头表示。
@Data
public class Phone{
private Card card;
}
@Data
public class Card{
}
组合关系(composition)
表示整体和个体的关系(A contains B),个体作为整体密不可分的一部分 (比如账单和账单明细)
在UML 中,组合关系使用实心菱形+实线箭头表示。
@Data
public class OrderBill {
private List<OrderBillItem> items;
}
@Data
public class OrderBillItem {
private OrderBill bill;
}