UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)
依赖(Dependency):
关联(Association):
聚合(Aggregation):
合成(Composition):
泛化(Generalization):就是程序当中的extends继承
实现(Realization):就是程序当中的implements实现
我是这样想的:一般类图之间大的方向就是继承与实现,对于继承、实现这两种关系没多少疑问,在类图里面能够能够体现他们的代码关系就够了,因为他们体现的是一种类与类、或者类与接口间的纵向关系,没有语义问题;
其他的四者关系则体现的是类与类、或者类与接口间的引用、横向关系,是比较难区分的,有很多事物间的关系要想准确定位是很难的,前面也提到,这几种关系都是语义级别的,所以从代码层面并不能完全区分各种关系(比如上面的关联和合成的示意图,代码是一样的,但是却代表了不同的关系),但是图出来了却能写出他们之间正确的调用关系代码;
四种关系的详细情况可参考:http://www.cnblogs.com/olvo/archive/2012/05/03/2481014.html
关联箭头表示:
如果是直线,那么是双向关联,两边都有多重值
如果是带有箭头的实线,那么是单向关联。
实现接口:
继承:
多重值描述:
UML两个类图连线上不是有 1.. 与 0..*等等,那是可能的多重值描述
含义如下
0..1 0个或1个
1 只能1个
0..* 0个或多个
* 多个
1..* 1个或多个
3 只能3个
0..5 0到5个
5..15 5到15个