在UML中,关系是非常重要的语义,它抽象出对象之间的联系,让对象构成某个特定的结构。
1.关联关系(association)
关联关系是用一条直线表示的,如
它描述不同类的对象之间的结构关系,它在一段时间内将多个类的实例连接在一起。关联关系是一种静态关系,通常与运行状态无关,而是由“常识”,“规则”,“法律”、等因素决定的,所以关联关系是一种”强关联“的关系。
关联关系用来定义对象之间静态的、天然的结构。这与依赖关系是不同的,依赖关系表达的是对象之间的临时性的、动态的关系。在JAVA代码里,关联关系通常是以实例变量(成员变量)的形式实现的。与依赖相比,关联的两个对象之间通常不会相互直接使用,尽管它们相互”知道”对付的存在,但一般都是由外部对象来访问的,如一个外部访问者可以通过员工对象获得公司对象。
关联关系具有多重性,常见的为:
- 一对一关联
- 一对多关联
- 多对多关联
例如对象之间的父-子结构,如果是无方向的,表明父子对象相互拥有对付的实例变量;如果有方向的,如父到子,则表明父对象有子对象的实例变量,但子对象没有父对象的实例变量。
特别的,在用例模型中,单向关联关系用于连接参与者和用例,箭头由参与者指向用例,表示参与者”知道”用例的存在。