UML类图
一、简介:
UML类图一共有:依赖(Dependency),关联(Association),泛化也叫继承(Generalization),实现(Realization),聚合(Aggregation),组合(Composite这六种关系,
二、依赖
概念:只要在类中用到了对方类,即没有对方连编译都无法通过,那么他们之间就存在依赖关系。
判断原则:
- 类中用到了对方
- 作为类的成员属性
- 作为方法的返回值类型
- 作为方法的形参类型
- 在方法中作为局部变量使用
三、泛化
概念:泛化关系就是继承关系,一种特殊的依赖关系。
判断原则:
- 如果A类继承了B类,即A和B存在泛化关系
四、实现
概念:实现关系顾名思义就是对接口的实现,也是一种特殊的依赖关系。
判断原则:
- 如果A类实现了B接口,即A和B存在实现关系
五、关联
概念:关联关系也是类与类之间的关系**,它也是依赖关系的一种特例**,我们可以参考数据库表与表的关系
判断原则:
- 如果A类的成员变量或者成员属性使用了B类,这就是A类单向关联B类
- 如果A类的成员变量或者成员属性使用了B类,同时B类也使用了A类,则A和B是双向关联关系
六,聚合
概念:聚合关系,表示整体与部分之间的关系,即整体和部分可以分开,聚合关系是关联关系的一种特例
判断原则:
- 如果A类依赖了B类,但是A类创建实例的时候不会同时创建B类的实例,只是在需要的时候才会使用的B类的实例,这就是聚合关系
public class A{
private B b;
public void setB(B b){
this.b=b;
}
}
七、组合
概念:表示整体与部分之间的关系,即整体和部分不能分开,聚合关系是关联关系的一种特例
判断原则:
-
如果A类依赖了B类,且在A类创建实例时,会默认去创建B类的实例,这样两者共生共灭,这就是组合关系。
public class A{ private B b = new B(); }
共生共灭,这就是组合关系。
public class A{
private B b = new B();
}
- 如果在A类中对B定义了级联删除,即删除A的实例对象时,会删除B的实例对象,即A和B也是组合关系。