UML图
六种箭头的含义
-
泛化(也就是继承)
-
概念:泛化表示一个更泛化的元素和一个更具体的元素之间的关系。泛化适用于对继承进行建模的UML元素。在Java中,用extends表示。
-
注意:箭头指向的是父类
-
-
实现(实现接口)
-
概念:实现是一种类与接口的关系,表示类是接口所有特征和行为的实现,在程序中一般通过类实现接口来描述。
-
注意:箭头指向的是实现类
-
-
依赖(弱引用)
-
概念:是一种使用的关系,即一个类的实现需要另一个类的协助。在Java中,方法参数需要传入另一个类的对象,就表示依赖这个类。
-
注意:类A需要用到类B,类A指向类B
-
-
关联(强引用)
-
概念:表示类与类之间的联接,它使一个类知道另一个类的属性和方法,这种关系比依赖更强、不存依赖关系的偶然性、关系也不是临时的,一般是长期的。在Java中,一个类的全局变量引用了另一个类,关联了这个类。
-
注意:类A中用到类B属性,类A指向类B
-
-
聚合
-
概念:聚合是关联关系的一种特例,是强的关联关系。聚合强调的是整体和个体之间的关系,即has-a(具有a)的关系,整体与个体可以具有各自的生命周期,部分可以属于多个整体对象,也可以多个整体对象共享。程序中聚合和关联关系是一致的,只能从语义级别来区分。
-
注意:类A中用到类B属性,类A指向类B
-
聚合关系和关联关系区分:
聚合(Aggregation)关系是关联关系的一种,是强的关联关系。聚合是整体和个体之间的关系。例如:汽车类与引擎类,轮胎类,以及其他的零件之间的关系。与关联关系一样,聚合关系也是通过实例变量实现的。但是关联关系所涉及的两个类是处在同一层次上的,而在聚合关系中,两个类是处在不平等层次上的,一个代表整体,另一个代表部分。
关联(Aggregation)关系是类与类之间的联接,它使一个类知道另一个类的属性和方法。关联可以是双向的,也可以是单向的。在Java语言中,关联关系一般使用成员变量来实现。
-
-
组合
-
概念:组合也是关联关系的一种特例。组合是一种整体与部分的关系,即contains-a的关系,比聚合更强。部分与整体的生命周期一致,整体的生命周期结束也就意味着部分的生命周期结束,组合关系不能共享。程序中组合和关联关系是一致的,可从语义进行区分。
-
注意:Head是Dog的一部分,Dog指向Head
-
1679642837550)]
- 注意:Head是Dog的一部分,Dog指向Head
如有错误感谢大家提出