
# 创建生命线
#### 生命线介绍
生命线的类型/构造型变化不会影响消息线的发送/接收逻辑。通常情况下，生命线是同高同位置的，表示从发送第一条消息开始，这些生命线所代表的对象在系统中是存在的，直至最后一条消息结束，这些生命线对象也不会被销毁。
由创建对象消息线（Create Message）创建的生命线，它是系统运行过程中动态生成的对象，其生命线位置要低于其余生命线。
同样，由销毁对象消息线（Delete Message）指向的生命线会在该条消息线指向之后被销毁，其生命线高度短于其余生命线。
介绍参考[元素介绍](https://support.huaweicloud.com/usermanual-codeartsmodeling/modeling_ug_0003_4_0.html)中生命线分类。
#### 创建生命线
在创建生命线前，需要先考虑哪种类型的生命线能更好地表示所要表达的对象。您可以通过以下三种方式创建生命线。
- 工具面板中选择一个生命线拖拽至画布中。 ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000001971783693.png "点击放大")
  
- 从工程树中其它模型视图中的元素拖拽至画布中，使用Link方式引用生成对应生命线。 ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002489765598.png "点击放大")
  
- 生命线也支持由创建消息线（Create Message）触发创建，其位置通常低于别的生命线。 ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000001944544844.png "点击放大")
  
#### 移动生命线
通常情况下，模型图中的生命线具备同样的位置和高度（动态创建和销毁的生命线除外）。
- 单个生命线不支持上下垂直移动，只支持左右水平移动。
- 全选生命线后，可以在垂直方向上移动，调整元素在画布中的位置。
- 调整任一生命线的高度，其余生命线会同步调整，保证所有生命线底部对齐。
![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002190814469.png "点击放大")
如果生命线是通过Create Message创建的，则可以操作该Create Message对目标生命线进行上下移动，但时间上不能早于之前最早生命线。
![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002190740909.png "点击放大")
#### 替换生命线
模型中的生命线可以变更成其余类型和构造型，也可以快速替换为其他生命线，避免纠错时删除重绘的麻烦。
选中生命线，右键单击"替换为..."。
![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002155319394.png "点击放大")
- 元素替换：替换成工程内的其它元素。 ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002489766246.png "点击放大")
  

- 类型\&构造型：修改生命线的类型和构造型。 ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002522005777.png "点击放大")
  
 
#### 模型示例
生命线在登录鉴权场景下的使用。
![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002155877070.png "点击放大")
Actor Lifeline表示人或其余参与系统（机器），代表的是一种执行/参与的角色。
Boundary Lifeline表示目标系统中的边界对象，可用于表示MVC模式中的View（视图），该示例中它表示的是运行于浏览器上的用户界面或者其余客户端页面。
Control Lifeline表示目标系统中的管理/调度/控制的对象，常用于表示MVC模式、控制模式中的Controller（控制器），该示例中它负责协调首次登录的密码校验、JWT的生成以及和用户界面的交互。
Entity Lifeline表示目标系统中的数据对象，常用于表示MVC模式中的Model（数据模型）、数据库或者其余数据存储实体，该示例中表示的是存储了用户账号密码的数据库（或数据库表）。
实际上，在用顺序图建模目标系统的时候，这些特殊生命线并不是一定被使用的，它们的存在不会影响顺序图本身的行为逻辑，只在图形展示上具备更好的示意效果，用户完全可以用默认生命线代替它们。大部分行为建模场景中，使用最广泛的是默认生命线，比如对某个子系统的各组件交互逻辑建模，此时使用默认生命线表示各组件对象即可。
