
# 事件流模型
事件流模型是用于描述领域中各种事件的模型，它可以帮助开发人员和用户更好地理解领域的业务流程和规则。事件流模型可以对领域的各个环节进行详细的描述，包括事件的触发条件、处理过程、产生的结果等，从而为开发人员提供详细的业务逻辑参考。
#### 元素介绍
表1事件流模型元素 
| 元素名               | 图标                                                                                                       | 含义                                                          |
|:---|:---|:---|
| DomainEvent       | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002513413239.png)        | 领域事件，发生在领域中并导致进一步业务操作的事件。对业务有价值，有助于形成完整的业务闭环。               |
| Aggregate         | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002513293275.png)        | 聚合，是可以承载决策命令、其对应的领域事件和属性（输入和输出）的重要业务概念。                     |
| Final             | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002513293281.png)        | 终止，表示事件已经执行完成。                                              |
| BusinessRule      | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002481173436.png)        | 业务规则，是对分支条件或复杂业务规则的抽象。                                      |
| A_ServiceFlowNode | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002513413297.png "点击放大") | 业务活动服务节点，将业务活动封装为可编排、可复用流程节点的模型。连接了业务流程和领域服务，实现了业务活动的标准化执行。 |
| PolicyMaker       | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002481173468.png)        | 决策者，是决策命令的触发原因。                                             |
| ServiceFlowNode   | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002481333668.png)        | 业务流节点，聚焦一个业务场景，以时间线为主线，向前向后发散，不断反问来完善整个业务流。                 |
| Initial           | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002513413649.png)        | 初始，表示事件状态开始。                                                |
| DecisionCommand   | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002513293749.png)        | 决策命令，是领域事件的触发动作，代表业务流上的重要业务决策，通过领域类上的方法来实现。                 |
| Control Flow      | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002513413767.png "点击放大") | 控制流，控制后续模块之间的关系。                                            |
   
#### 建模步骤
以某硬件项目为例进行软件架构设计。
1. 工具箱拖动Initial元素至画布中，表示事件的开始。 
   ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002487703406.png "点击放大")
   拖动A_ServiceFlowNode元素至画布中，命名获取数据包结果，并使用Control Flow连接。
   ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002487543240.png)
   
   
2. 同样方式创建后续ServiceFlowNode和Final元素，使用Control Flow进行连接。 
   ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002487542458.png "点击放大")
   
   
3. 参考示例补充DomainEvent、BusinessRule、DecisionCommand、PolicyMaker、Aggregate元素。 
   ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002519781489.png "点击放大")
   
   
 
