UML箭头在Java中的含义
泛化
在 Java 中表示继承关系,空心箭头指向父类
示例:
class Parent {
}
class Son extends Parent {
}
实现
表示实现接口,箭头指向接口类
示例:
interface Iter {
}
class TerImpl implements Iter {
}
依赖
表示依赖关系,某个类的方法必须依赖另一个类才可以执行,箭头指向被依赖的类
示例:
class A {
public void testA(){
System.out.println("这是 A 类");
}
}
class B {
public void testB(A a){
a.testA();
}
}
关联关系
关联
表示关联关系,两个类的关系是平等的
可以双向关联,A 可以关联 B,B 也可以关联 A
箭头指向被关联的类
示例:
class A {
public void testA(){
System.out.println("这是 A 类");
}
}
class B {
private A a;
public B(A a) {
this.a = a;
}
public void testB(){
a.testA();
}
}
聚合
表示聚合关系,聚合是关联的一种特例,在代码上两者没有什么区别。
单向关联,A 能关联 B,B 不能关联 A
尾部为空棱形,也可以是直线
示例:
class A {
}
class B {
private List<A> a;
}
组合
表示组合关系,也是关联关系的一种
表示强关联关系,被关联的类的生命周期会随关联类的生命周期一起产生和消失
示例:
class A {
}
class B {
private A a;
public B() {
this.a = new A();
}
}
总结
聚合和组合的区别:聚合是个体离开了整体,依然可以存在. 组合是个体和整体不可以分开,个体不能离开整体单独存在。
依赖,关联 和聚合,组合的区别:依赖,关联 : 类之间的关系是在同一层次上. 聚合,组合: 类之间的关系表现为整体和部分。