类图中的六种关系

一、首先来罗列一下这六种关系都有什么

  1.泛化(Generalization)  

  2. 实现(Realization)

  3. 关联(Association)

  4. 聚合(Aggregation)

  5. 组合/合成(Composition)

  6. 依赖(Dependency)

各种关系的强弱顺序:

泛化 = 实现 > 组合/合成 > 聚合 > 关联 > 依赖

有些版本将泛化和实现统称为一般化关系

二、详细说一下这六种关系

  1.泛化(Generalization)

  【泛化关系】: 是一种继承关系,表现在类与类的继承关系;接口与接口的继承关系。驾驶员继承人类

  【代码体现】:extends

  【箭头指向】:带三角箭头的实线,箭头指向父类或者父接口

        

  2. 实现(Realization)

  【实现关系】: 是实现类对接口实现的体现。鸟实现飞行的接口

  【代码体现】:implements

  【箭头指向】:带三角箭头的虚线线,箭头指向接口

        

  3. 关联(Association)

  【关联关系】: 是类与类之间的链接,它使一个类知道另一个类的属性和方法。关联可以是双向的,也可以是单向的。鸟栖息在某片森林

  【代码体现】:成员变量

  【箭头指向】:带普通箭头的实线,双向的关联可以有两个箭头或者没有箭头,单向的只有一个箭头,表示关联的方向。

      

  

  4. 聚合(Aggregation)

  【聚合关系】: 是关联关系的一种,是强的关联关系。聚合是整体和部分之间的关系,且部分可以离开整体单独存活。

  关联和聚合从Java语法上分辨不出,要考虑逻辑关系,如果不确定,可设置为关联关系。下面,飞机和驾驶员都属于航空公司的一部分

  【代码体现】:成员变量

  【箭头指向】:带空心菱形的实线,菱形指向整体。

      

  5. 组合/合成(Composition)

  【合成关系】: 是关联关系的一种,是比聚合强的关系。他要求普遍的聚合关系中代表整体的对象负责部分的对象的生命周期,合成关系不能共享。

  就是说:代表部分的对象每时每刻都只能与一个对象发生合成关系。如果不能确定,可以设置为聚合关系。如鸟的翅膀,和鸟的关系就是合成关系

  【代码体现】:成员变量

  【箭头指向】:带实心菱形的实线,菱形指向整体。

       

   6. 依赖(Dependency)

  【依赖关系】:是类与类之间的连接,依赖总是单项的。依赖表示一个类的定义依赖于另一个类的定义。如飞机驾驶员驾驶飞机,就是一种依赖

  与关联关系不同的是,飞机并不是驾驶员的一个成员变量,毕竟并非所有的飞架驾驶员都拥有飞机。动物依赖水和空气也是个不错的例子

  【代码表现】:局部变量、方法的参数或者对静态方法的调用

  【箭头及指向】:带箭头的虚线,指向被使用者

                   

三、下面用一个整合的图来展示这六种关系

       

原文地址:https://www.cnblogs.com/Liang0622/p/8454959.html

时间: 2024-10-28 18:02:58

类图中的六种关系的相关文章

UML类图中的六种关系

UML类图中经常会用到各种箭头和线条来表示不同类或者接口之间的关系,因此非常好的理解各个图标的含义是很有必要的. 在逻辑设计阶段可以通过EA工具将类图搭建好,然后直接生成物理类,这样也可以减少物理设计的工作量. 下面介绍UML中六种关系: 1. 泛化(Generalization) 概念:泛化是一种一般与特殊.一般与具体之间关系的描述,具体描述建立在一般描述的基础之上,并对其进行了扩展.在java中用来表示继承的关系. 表示:用实线空心三角箭头表示. 2. 实现(Realization) 概念:

UML类图中的六种关系及实例【补充】

·继承和接口都比较常见,通过继承子类可以直接使用父类的(public,protected属性以及方法:而实现了Speakable接口的Person类必须定义其所有方法,包括speak()): ·依赖指的是某个类进行初始化或者实现特别的方法时,必须依赖其他特定对象:如上面例子中人必须依赖water和oxygen; ·组合跟聚合很容易搞混.但是好好理解一下还是不难区分的:上面例子中意思是教师(人)由手.脚组成(当然你还可以加上五官),而聚合指的是一个“大类”中包含多个一样的“小类”,比如一个班级有多

UML类图中的六大关系:泛化、实现、依赖、关联、聚合、组合关系

UML定义的关系主要有:泛化.实现.依赖.关联.聚合.组合,这六种关系紧密程度依次加强,分别看一下 1.泛化 概念:泛化是一种一般与特殊.一般与具体之间关系的描述,具体描述建立在一般描述的基础之上,并对其进行了扩展.在程序中是通过继承类实现的.比如狗是对动物的具体描述,在面向对象设计的时候一般把狗设计为动物的子类. 表示方法:空心三角形箭头的实线,子类指向父类 2.实现 概念:实现是一种类与接口的关系,表示类是接口所有特征和行为的实现,在程序中一般通过类实现接口来描述 表示方法:空心三角形箭头的

UML类图中的六种线条与六种关系

1.泛化(generalize) 实线空心三角箭头. 2.实现(realize) 虚线空心三角箭头. 3.聚合(aggregation) 实线空心菱形箭头. 4.组合(composition) 实线实心菱形箭头. 5.关联(association) 实线(直线),普通箭头("<",">")可选.如果强调方向,则加一个普通箭头.否则只需要一条实线. 6.依赖(dependency) 虚线普通箭头("<",">&qu

UML类图的6大关系

<小酌重构系列>已经完成了大约1/3了,在这些文章中,我使用了一些简单的类图来描述重构策略.在之后的文章中,我可能会借助稍微复杂一些的UML类图来介绍.但是在此之前,我觉得有必要先介绍一下UML类图中6大关系了.这6大关系分别是Inheritance(继承).Implementation(实现).Dependency(依赖).Association(关联).Aggretation(聚合)和Composition(组合).在这6大关系中,依赖.关联.聚合和组合是比较容易混淆的,我也会讲解它们之间

类图及类图中的关系

1.类图和对象图  类图(Class Diagram)是显示出类.接口以及他们之间的静态结构与关系的图.其中最基本的单元是类或接口. 类图不但可以表示类(或者接口)之间的关系,也可以表示对象之间的关系.下面是一个典型的类图: 类图一般分为几个部分:类名.属性.方法.下面分别讲解. (1)类名 上面的Car就是类名,如果类名是正体字,则说明该类是一个具体的类,如果类名是斜体字,则说明类是一个抽象类abstract. (2)属性列表 属性可以是public.protected.private.pub

再说UML类图的几种关系

在UML类图中,常见的有以下几种关系: 泛化(Generalization),  实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency) 1. 泛化(Generalization) [泛化关系]:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为. 例如:老虎是动物的一种,即有老虎的特性也有动物的共性. [箭头指向]:带三角箭头的实线,箭头指向父类 2. 实现(Rea

UML类图的几种关系总结【转】

在UML类图中,常见的有以下几种关系: 泛化(Generalization),  实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency) 1. 泛化(Generalization) [泛化关系]:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为.例如:老虎是动物的一种,即有老虎的特性也有动物的共性. [箭头指向]:带三角箭头的实线,箭头指向父类         2.

类图及其相应的关系

1. 类图(Class Diagram)是显示出类.接口以及他们之间的静态结构与关系的图.其中最基本的单元是类或接口. 类图不但可以表示类(或者接口)之间的关系,也可以表示对象之间的关系. 下面是一个典型的类图: (2)属性列表 属性可以是public.protected.private package.用的是PowerDesigner 还可能使用+.-.#.* 表示:+代表public.-代表private.#代表protected.*代表package(java默认) (3)方法列表 方法可