在UML建模中,可以用连线表示类或者接口之间的关系,主要的关系有:一般化关系、关联关系、聚合关系、合成关系以及依赖关系
一般化关系表示的是类与类之间的继承,接口与接口之间的继承,或者类对接口的实现关系.在JAVA代码中,一般化关系表现为extends或者implements
关联关系是类与类之间的关系,指一个类拥有另一个类的实例,可以查看实例的属性以及调用实例的方法,关联关系可以是双向的,也可以是单向的,双向的关联关系,在序列化时可能会出现栈溢出的问题,不推荐使用
聚合关系是更为特殊的关联关系,它表示类所拥有的实例,是构成类的一部分,比如一辆车拥有轮胎对象,发动机对象等实例,并可以运行发动机
合成关系是更为特殊的聚合关系,它表示类不仅是由所拥有的实例组成,更要维护所拥有实例的生命周期,一旦类被销毁,其所拥有的实例只会存在两种情况:1、和实例一起被销毁,这种情况比较常见 2、将实例传递给其他对象,由后者维护其生命周期,这种情况比较罕见. 合成关系可以比喻为人之与四肢,人死了,四肢也随之而去,或者一些器官也有小概率捐献给他人
依赖关系同样是类与类之间的关联,但是依赖关系总是单向的, 同时依赖对象并不会持有被依赖对象的实例. 在java语言中,依赖关系体现在局部变量、方法参数以及静态方法调用等处
无边沉沦,苦海渡航