UML中六种类图关系

179 阅读2分钟

1.UML中六种类图关系介绍及示例说明

在UML中有六种关系,分别为关联,依赖,泛化,实现,聚合和组合。在这六种关系中,泛化和实现指的是类结构之间的关系。而另外四种关系是根据对象运行时生命周期的不同分为四种关系。

1.1 实现 类与接口

在java中通过implement 实现的接口,该种类与类之间的关系为泛化。

表示方式:使用虚线+空心三角箭头

1.2 泛化 类与类之间

见名知意,就是继承。在java中extends的为继承关系。

表示方式:实线+空心三角箭头

1.3 关联

A类中持有B类的全局变量。

1.4 依赖

依赖关系在Java中的具体代码表现形式为B为A的构造器或方法中的局部变量(方法作用域中创建对象,作用范围局限于方法作用域中)、方法或构造器的参数、方法的返回值,或者A调用B的静态方法。(非全局的作用域外的其他作用域则为依赖关系)

1.5 聚合

聚合与组合不同之处在于,其对象之间的关系不是强依赖。A类中持有B类的实例,但不管理器生命周期。例如在A类中有个集合,该集合中装的是B类的对象。

1.6 组合

A类会负责管理B类实例的创建和销毁。B类对象的生命周期由A类的对象进行管理。 生命周期绑定在一起的关系成为组合关系,也是关系中最强的一种。

tip:上面把泛化和实现关系搞错了,将泛化记成了实现。

强度比较

关联 > 依赖 组合 > 聚合

上面四种关系形容的是实例之间的关系。

泛化 > 实现 :这两个形容的是类之间的关系。

总结

  1. 泛化和实现指的是类的结构关系,而另外四种关系指的是运行是对象之间相互依赖的关系。
  2. 聚合关系可以理解图书馆和图书的关系,而组合理解为动物和动物的头之间关系,他们是强关联且是相互依赖的,相互成就对方。

参考资料1:《Thinking in UML》

参考资料2:zhuanlan.zhihu.com/p/109655171