
# 多彩领域模型
多彩领域模型是一种用于描述领域业务的模型，它可以帮助开发人员和用户更好地理解领域的业务流程和规则。多彩领域模型通常包括各种类、对象、属性、关系等元素的描述，可以对领域的各个环节进行详细的建模，从而为开发人员提供详细的业务逻辑参考。
#### 元素介绍
表1需求图元素 
| 元素名                 | 图标                                                                                                                                                                                                  | 含义                                                                                                    |
|:---|:---|:---|
| Interface           | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002483422970.png)、![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002483422988.png) | 接口，定义领域行为契约的核心机制，连接领域概念与技术实现的桥梁。                                                                      |
| SubDomain           | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002515702961.png)                                                                                                   | 子域，是对问题域的澄清和划分，是整个业务领域的一部分。可以认为子域代表的是一个单一的、有逻辑的领域模型。                                                  |
| I_BusinessRule      | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002515702973.png)                                                                                                   | 业务规则接口，将业务规则抽象为接口，使规则成为可组合、可测试、可替换的核心独立组件。                                                            |
| Entity              | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002515742977.png)                                                                                                   | 实体，是聚合的主干，具有唯一标识和生命周期。                                                                                |
| Factory             | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002515703027.png)                                                                                                   | 工厂，封装复杂对象的创建逻辑，确保创建出的领域对象从一开始是完整且一致。                                                                  |
| Class               | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002483423096.png)                                                                                                   | 类，实现领域概念的核心单元，是业务行为和规则的封装体。                                                                           |
| Application Service | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002483583072.png)                                                                                                   | 应用服务，负责协调领域对象来完成一个具体的、用例相关的业务操作。                                                                      |
| I_DomainService     | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002483583092.png)                                                                                                   | 领域服务接口，封装不属于聚合的领域逻辑。                                                                                  |
| I_Repository        | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002515743085.png)                                                                                                   | 资源库接口，提供聚合持久化的抽象，让领域层不依赖具体的数据存储技术。                                                                    |
| Domain Service      | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002515743153.png)                                                                                                   | 领域服务，通常一个聚合有一个对应的领域服务，组织多个实体实现相对复杂的业务逻辑。                                                              |
| I_Event             | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002515743165.png)                                                                                                   | 事件接口，定义领域事件结构、行为和契约的核心机制。                                                                             |
| Aggregate           | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002483583280.png)                                                                                                   | 聚合，是可以承载决策命令、其对应的领域事件和属性（输入和输出）的重要业务概念。                                                               |
| BusinessRulePolicy  | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002515703383.png)                                                                                                   | 业务规则策略，对系统业务或设计起约束作用的规则。                                                                              |
| Table               | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002483423448.png)                                                                                                   | 表格，领域模型与持久化之间的映射关系。                                                                                   |
| I_Factory           | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002483423480.png)                                                                                                   | 工厂接口，将复杂对象创建逻辑抽象化、标准化、可替换化的核心设计。                                                                      |
| EventPolicy         | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002515744945.png)                                                                                                   | 事件策略，当某个领域事件发生时，自动执行一组相关的业务策略。                                                                        |
| I_Entity            | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002483583492.png)                                                                                                   | 实体接口，定义实体核心行为、不变条件和生命周期的关键抽象。                                                                         |
| Bounded Context     | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002483583518.png)                                                                                                   | 边界上下文，是业务上下文的边界，在该边界内，封装通用语言和领域对象，同时也包含了领域模型提供交互手段和辅助功能的内容。                                           |
| Value Object        | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002515743507.png)                                                                                                   | 值对象，是实体的附加业务概念，用来描述实体所包含的业务信息。                                                                        |
| Composition         | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002483581868.png "点击放大")                                                                                            | 组合，是整体与部分的关系，但部分不能离开整体而单独存在。                                                                          |
| Aggregation         | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002515741881.png "点击放大")                                                                                            | 聚合，是整体与部分的关系，且部分可以离开整体而单独存在。                                                                          |
| Realization         | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002515741893.png "点击放大")                                                                                            | 实现，是一种类与接口的关系，表示类是接口所有特征和行为的实现。                                                                       |
| Dependency          | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002515701903.png "点击放大")                                                                                            | 依赖，是一种使用的关系，即一个类的实现需要另一个类的协助。                                                                         |
| Usage               | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002483421996.png "点击放大")                                                                                            | 使用，是一种使用的关系。表明一个模块在运行的时候，需要使用另外一个模块。                                                                  |
| Association         | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002483582234.png "点击放大")                                                                                            | 关联，是一种拥有的关系，它使一个类知道另一个类的属性和方法。                                                                        |
| Generalization      | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002515702263.png "点击放大")                                                                                            | 泛化，表示类与类、接口与接口之间的继承关系，由子对象一方指向父对象一方。                                                                  |
| Control Flow        | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002515702275.png "点击放大")                                                                                            | 控制流，控制后续模块之间的关系。                                                                                      |
| Constraint          | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002483422332.png "点击放大")                                                                                            | 约束，用于语义条件或者限制的表达式。                                                                                    |
| Anchor              | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002483582392.png "点击放大")                                                                                            | 锚点，定义了核心锚点之间以及锚点与其他组件之间的结构化连接，形成稳定的领域拓扑。                                                              |
| Nesting             | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002483582424.png "点击放大")                                                                                            | 嵌套，即一个类的嵌套到另一个类。                                                                                      |
| Abstraction         | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002483582442.png "点击放大")                                                                                            | 抽象是确认一件事物本质特征的行为，这种行为将这个事物与其他所有事物区分开来。 抽象依赖关系表示成从客户元素指向提供者元素的箭头。 |
   
#### 建模步骤
以某硬件项目为例设计软件架构。
1. 工具箱拖动Application Service元素至画布中，并命名应用子域。 
   ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002519161921.png "点击放大")
   同样方式创建Application Service元素并命名资源申请，拖入到应用子域元素中。
   ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002519149121.png)
   
   
2. 参考应用子域创建各子域SubDomain，并将Domain Service和Interface元素分别拖入对应子域。 
   ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002486922086.png "点击放大")
   
   
3. 使用连线Dependency连接各子域。 
   ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002486921600.png "点击放大")
   
   
 
