UML图

一、概念描述

什么是类图?

类图用于显示类、接口以及它们之间的静态结构和关系,用于描述系统的结构化设计。

类图描述系统中类的静态结构,不仅定义系统中的类,表示类之间的联系如关联、依赖、聚合等,也包括类的内部结构(类的属性和操作)。类图是以类为中心来组织的,类图中的其他元素或属于某个类或与类相关联。

类图的元素:类、接口、协作(什么概念?)、关系。类图中也可以包含包和子系统,这两者用来将元素分组。

什么是类?

类是对一组具有相同属性、操作、关系和语义的对象的抽象,包括:名称、属性和操作。

什么是接口?

在没有给出对象的实现和状态的情况下对对象行为的描述;一个类可以实现一个或多个接口;

什么是协作?

协作是指一些类、接口和其他的元素一起工作提供一些合作的行为,这些行为不是简单地将元素集合在一起得到的。使用类图来可视化这些类和他们的关系。

上述三种实例之间的几种关系:泛化、实现、关联(包括:一般关联、聚合、组合)以及依赖。

加号(+)表示public;减号(-)表示private;#号表示protected;省略这些修饰符表示具有package(包)级别的可见性。如果属性或方法具有下划线,则说明它是静态的。

类图:

泛化Generalization:

是一种继承关系,表示一般和特殊的关系;它指定了子类如何特化父类的所有特质和行为,描述了一种 is a kind of 的关系。

StarUML中,使用:带有空心箭头的实线表示,并且箭头部分指向父类。

7

实现Realization:

是一种类与接口的关系,表示类是接口所有特征和行为的实现。

StarUML中,使用:带有空心箭头的虚线表示,并且箭头指向接口。

1

关联Association:包含三种形态,一般关联、聚合和组合。

一般关联:关联关系是类与类之间的联接,它使一个类知道另一个类的属性和方法,指明了事物的对象之间的联系;关联可以是双向的,也可以是单向的,还有自身关联。

StarUML中,用带有普通箭头的实心线表示。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。

3

聚合Aggregation:聚合是整体和部分(整体 has a 部分)的关系,且部分可以离开整体而单独存在,如车和轮胎是整体和部分的关系,但轮胎离开车仍然可以存在。聚合关系是关联关系的一种,是强的关联关系。

StarUML中,用带有空心菱形的实线表示,菱形指向整体。

4

组合Composition:是整体和部分的关系,但部分不能离开整体而单独存在。如公司和部门是整体和部门的关系,没有公司就不存在部门。

StarUML中,用带有实心菱形的实线表示,菱形指向整体。

6

依赖Dependency:元素A的变化会影响元素B,那么B和A的关系就是依赖关系,即:B依赖A。要避免双向依赖;一般来说,不应该存在双向依赖。关联、实现、泛化都是依赖关系。

StarUML中,用带有箭头的虚线表示,箭头指向被依赖元素。

2

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

二、关系区分

常见的关系有:继承(Inheritance),关联关系(Association),聚合关系(Aggregation),复合关系(Composition),依赖关系(Dependency)。

其中,聚合关系(Aggregation),复合关系(Composition)属于关联关系(Association)。

一般关系表现为继承或实现关系(is a),关联关系表现为变量(has a ),依赖关系表现为函数中的参数(use a)。

1. 一般关系:表示为类与类之间的继承关系,接口与接口之间的继承,类对接口的实现关系。

表示方法: 用一个空心箭头+实线,箭头指向父类。或空心箭头+虚线,如果父类是接口

2. 关联关系:类与类之间的联接,它使一个类知道另一个类的属性和方法。

表示方法:用 实线+箭头, 箭头指向被使用的类

3. 聚合关系:是关联关系的一种,是强的关联关系。聚合关系是整体和个体的关系。关联关系的两个类处于同一层次上,而聚合关系两个类处于不同的层次,一个是整体,一个是部分。

表示方法:空心菱形+实线+箭头,箭头指向部分

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

表示方法:实心菱形+实线+箭头

5依赖关系:是类与类之间的连接,表示一个类依赖于另一个类的定义。例如如果A依赖于B,则B体现为局部变量,方法的参数、或静态方法的调用。

表示方法:虚线+箭头 箭头指向被依赖的一方,也就是指向局部变量

原文地址:https://www.cnblogs.com/CVstyle/p/6208228.html