
# 类图
类图展示了任何面向对象系统的基础模块，它定义了每个类的属性和方法，以及这些类之间的关系。
#### 元素介绍
表1类图元素介绍 
| 元素名              | 图标                                                                                                                                                                                                                                                    | 含义                                                                                                    |
|:---|:---|:---|
| Class            | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002546905271.png "点击放大")                                                                                                                                              | 类是对象的集合，展示了对象的结构以及与系统的交互行为。                                                                           |
| Interface        | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002515505336.png "点击放大") ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002546985273.png "点击放大") | 接口，可以是单个接口，也可以是抽象的一组接口的组合。 圆形接口与矩形接口意义相同，仅形状不同。                    |
| Data Type        | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002515345430.png "点击放大")                                                                                                                                              | 数据类型包括原始预定义的类型和用户自定义的类型。原始类型有：数字、字符串、浮点数。用户定义的类型是枚举类型。程序语言中用于实现的匿名数据类型可以用语言类型定义。                      |
| Enumeration      | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002546905273.png "点击放大")                                                                                                                                              | 枚举是一种数据结构，它的实例构成了有名字的字面值。通常，同时声明枚举名和其字面值的名字。                                                          |
| Primitive Type   | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002515505338.png "点击放大")                                                                                                                                              | 原始类型是一个预先定义好的基本数据类型，比如整数或者字符串。                                                                        |
| Signal           | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002546985275.png "点击放大")                                                                                                                                              | 信号表示对象之间异步通讯的声明。                                                                                      |
| Association Node | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002515345432.png "点击放大")                                                                                                                                              | 关联节点，用于多个元素之间表示关联关系。                                                                                  |
| Part             | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002546905275.png "点击放大")                                                                                                                                              | 表示类或接口的运行时实例。                                                                                         |
| Port             | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002515505340.png "点击放大")                                                                                                                                              | 端口，定义了分类器与环境之间的相互作用。                                                                                  |
| Interface        | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002546985277.png "点击放大")![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002515345434.png "点击放大")                                      | Required Interface和Provided Interface之间可以建立Dependency依赖关系，表明一个组件需要的接口是由另外一个组件提供的。                     |
| Generalization   | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002546905277.png "点击放大")                                                                                                                                              | 泛化，表示类与类、接口与接口之间的继承关系，由子对象一方指向父对象一方。                                                                  |
| Composition      | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002515505342.png "点击放大")                                                                                                                                              | 组合，是整体与部分的关系，但部分不能离开整体而单独存在。                                                                          |
| Aggregation      | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002546985279.png "点击放大")                                                                                                                                              | 聚合，是整体与部分的关系，且部分可以离开整体而单独存在。                                                                          |
| Realization      | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002515345436.png "点击放大")                                                                                                                                              | 实现，是一种类与接口的关系，表示类是接口所有特征和行为的实现。                                                                       |
| Dependency       | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002546905279.png "点击放大")                                                                                                                                              | 依赖，是一种使用的关系，即一个类的实现需要另一个类的协助。                                                                         |
| Usage            | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002515505344.png "点击放大")                                                                                                                                              | 使用，是一种使用的关系。表明一个模块在运行的时候，需要使用另外一个模块。                                                                  |
| Instantiate      | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002546985281.png "点击放大")                                                                                                                                              | 实例化，声明用一个类的方法创建了另一个类的实例。                                                                              |
| Constraint       | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002515345438.png "点击放大")                                                                                                                                              | 是一个语义条件或者限制的表达式。UML预定义了某些约束，其他可以由建模者自行定义。                                                             |
| Delegation       | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002546905281.png "点击放大")                                                                                                                                              | 委托，委托关系定义组件外部端口和接口的内部访问方式。                                                                            |
| Abstraction      | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002515505346.png "点击放大")                                                                                                                                              | 抽象是确认一件事物本质特征的行为，这种行为将这个事物与其他所有事物区分开来。 抽象依赖关系表示成从客户元素指向提供者元素的箭头。 |
| Information Flow | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002546985283.png "点击放大")                                                                                                                                              | 信息流表示任何图中两个元素之间的信息项（信息项元素或分类器）的流。                                                                     |
| Association      | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002515345440.png "点击放大")                                                                                                                                              | 关联，是一种拥有的关系，它使一个类知道另一个类的属性和方法。                                                                        |
   
#### 属性和方法
类元素添加属性和方法，选中元素右键"属性\&方法"，属性\&方法的编辑方式参考[如何添加元素属性和方法](https://support.huaweicloud.com/codeartsmodeling_faq/modeling_faq_0001_5.html)。
![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000001944545104.png "点击放大")
#### 连线关系
类连线的几种关系表示：关联关系、继承关系、实现关系、依赖关系、聚合关系、组合关系。
- 关联关系：使用Association连线表示类之间的双向关联关系。 ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002515505866.png "点击放大")
  
- 实现关系：Class类元素通过Realization连线指向Interface，可继承Interface的方法。 ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002546905801.png "点击放大")
  ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002546985811.png "点击放大")
  
 
#### 建模示例
类（Class Diagram）是对象的集合，展示了对象的结构以及与系统的交互行为。类主要由属性（Attribute）和方法（Operation）构成。属性代表对象的状态，如果属性被保存到数据库，称为持久化；方法代表对象的操作行为。类具有继承关系，可以继承于父类，也可以与其他的Class进行交互。
![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002515345968.png "点击放大")
