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