关系主要有一下几种:
●Associate(关联):类之间有关联,通常是作为变量存在;
●Aggregate(聚合):类A包含类B或由类B组成;
●Compose(组合):类A是由其他类组成;
●Dependency(依赖):类A需要类B的协助,类B变化会影响类A,反过来不成立;
●Generalize(泛化):一般到具体的关系;
●Realize(实现):类A实现类B;
注意:其中,聚合,组成属于关联关系,泛化关系表现为继承或实现关系(is a),关联关系表现为变量(has a ),依赖关系表现为函数中的参数(use a)。
1.关联(Associate)
表示方法: 箭头+实线,箭头指向被使用的类;
系统图标:
使用说明:类与类之间的联接,它使一个类知道另一个类的属性和方法,如下图所示:
- 聚合关系(Aggregation)
表示方法:空心菱形+实线,空心菱形指向整体
系统图标:
使用说明:聚合关系是整体和个体的关系。下图应用程序聚合功能模块,但是功能模块可以离开应用程序而独立存在,如下图所示:
- 组合关系(Composition)
表示方法:实心菱形+实线 实心菱形指向整体
系统图标:
使用说明:是关联关系的一种,是比聚合关系强的关系。它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期,下图功能模块组合操作方法,这个操作方法不能脱离功能模块单独的存在,功能模块消失后操作方法也随即消失:
- 依赖(Dependency)
表示方法:虚线+箭头 箭头指向被依赖类;
系统图标:
使用说明:如果类A访问类B的属性或者方法,或者类A负责实例化类B,那么可以说类A依赖类B。和关联关系不同,无须在类A中定义类B类型的属性:
- 泛化(Generalization)
表示方法:实线+三角箭头 三角箭头指向一般类;
系统图标:
使用说明:两个类存在泛化的关系时就使用此关系,例如父和子,动物和老虎,植物和花等,在面向对象中,我们一般称之为继承关系:
- 实现(Realization)
表示方法:虚线+三角箭头 三角箭头指向一般类;
系统图标:
使用说明:类实现了另一个类的功能,一般表现在类继承接口上