UML类图关系理解和图例

UML分类

 

 类图关系

  用户根据用例图抽象成类,描述类的内部结构和类与类之间的关系,是一种静态结构图。 在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)。

  各种关系的强弱顺序: 泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖。

分组1:泛化和实现

泛化是父类和子类之间的关系,实现是接口和实现的关系

指向关系:子类指向父类。

 

分组2:组合、聚合和关联

共同点:这三种关系都表示类A作为类B的属性(成员变量),是一种比较持久的关系。类A拥有类B作为属性,就表示拥有了类B的属性和方法。

区别:语法上不能区分三者,只能从含义上区别:组合是整体和部分的关系,部分依赖于整体存在,如鸟和翅膀;聚合是集体和个体的关系,个体不需要依赖于集体的存在而存在;其他情况下用关联。

指向关系:对于关联关系,类A使用了类B作为属性,则类A指向B

分组3:依赖

定义:类A依赖类B,表示类A拥有类B作为返回值、形参、局部变量或静态方法的调用。

指向关系:类A依赖类B,A指向B

类图示例和记忆帮助:

因为关系是按照类A将类B作为A的xxx来划分的。

泛化和实现的指向都是子类指向父类,实现类指向抽象类。虚线表示实现(因为常常说实现接口),实现表示泛化。

其他的除了具体的聚合和组合外,都是类A拥有类B,则类A指向类B

聚合和组合,组合关系更强用的是实心菱形箭头,聚合是空心箭头。

 

 UML类图基本表示法

一个类用三行表示,见图:

 

 

 

参考:

类图基本表示法:https://www.w3cschool.cn/uml_tutorial/uml_tutorial-5y1i28pl.html

所有类关系图例:https://design-patterns.readthedocs.io/zh_CN/latest/read_uml.html#id1

类关系含义理解和代码实现:https://blog.csdn.net/K346K346/article/details/59582926

UML分类图:https://zhuanlan.zhihu.com/p/44518805

最近发现了一个很全的UML资料网站,时间有点老但是内容不影响:http://www.uml.org.cn/oobject/OObject.asp#3

posted @ 2020-02-12 16:18  IcarusYu  阅读(1158)  评论(0编辑  收藏  举报