Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops 如何在序列图中显示几个循环并在其中执行操作?_Loops_Sequence Diagram - Fatal编程技术网

Loops 如何在序列图中显示几个循环并在其中执行操作?

Loops 如何在序列图中显示几个循环并在其中执行操作?,loops,sequence-diagram,Loops,Sequence Diagram,我想展示我的UserControl/控件在插入数据列表时所做的事情,当用户按某些键、选择文本等时会发生什么 不知何故,我觉得序列图并不适合显示多个循环,也不适合在循环中进行操作 我错了吗?或者我该如何处理这种情况?如果您谈论的是一个循环,那么循环中的所有元素都会发生一系列操作 如果循环中的操作相当复杂,我会将循环中完成的操作本身建模为序列图 我不认为这里可以有经验法则,但是当循环本身的过程很复杂,并且循环相对不那么复杂时,我们可以在单个序列图中使用它们 如果有循环的过程不是很复杂,但是循环很复杂

我想展示我的UserControl/控件在插入数据列表时所做的事情,当用户按某些键、选择文本等时会发生什么

不知何故,我觉得序列图并不适合显示多个循环,也不适合在循环中进行操作


我错了吗?或者我该如何处理这种情况?

如果您谈论的是一个循环,那么循环中的所有元素都会发生一系列操作

如果循环中的操作相当复杂,我会将循环中完成的操作本身建模为序列图

我不认为这里可以有经验法则,但是当循环本身的过程很复杂,并且循环相对不那么复杂时,我们可以在单个序列图中使用它们

如果有循环的过程不是很复杂,但是循环很复杂,那么我将为循环的操作绘制一个序列图,并注意整个序列是由循环调用的

如果需要,您还可以拥有两个序列图

更新:
我们必须在图中添加一些注释,因为在序列图中表示“条件”并不简单。
验证部分类似于

do validation
if validation succeeds
   proceed to next (business or other) logic
if validation fails
   feedback to user (or some other logic)

+----+          +----+          +----------------+      +----------------+
|User|          | UI |          | Your Validator |      | Business Logic |
+----+          +----+          +----------------+      +----------------+
  |     select     |                   |                        |
  |--------------->|   doValidation    |                        |
  |                |------------------>|----+                   |
  |                |                   |    | Validate          |
  |                |                   |<---+                   |
  |                |                   |                        |
  |                |                   | (validation fails:     |
  |                |  Validation Fail  |  feedback to client)   |
  |                |<------------------|                        |
  |                |                   |                        |
  |                |                   |                        |
  |                |                   | (validation succeeds:  |
  |                |                   |  proceed to            |
  |                |                   |  business logic)       |
  |                |                   |                        |          
  |                |                   |    someLogic           |
  |                |                   |----------------------->|
  |                |                   |                        |

有关使用alt块的示例,请参见

我如何用序列图来描述用户在选择某个东西,而我在选择某个东西时进行验证?序列图中通常有一个参与者。从参与者到第一个类(在您的情况下是UI)的“消息”是“选择一个项目”,例如是的,但在选择过程中,算法开始检查选择中的一些字符/选择发生时。如何用序列图来描述这一点?如果我理解正确,用户界面上有某种列表,当用户从列表中选择一项时。当进行此选择时,您将执行一些验证/处理,并且(可能)根据结果继续执行下一步。我的解释符合这一点。我是否正确理解你的情景?是的,这是我的情景。下一步是允许选择或将其限制在字符上。
    +----+          +----+          +----------------+      +----------------+ 
    |User|          | UI |          | UI - Backend   |      |  Busines Logic |
    +----+          +----+          +----------------+      +----------------+
      |  Add Record    |                   |                        |
      |--------------->|  doinsertOrUpdate |                        |
      |                |------------------>|                        |
      |                |                   |      exists(record)    |
      |                |                   |----------------------->|
      |                |                   |                        |         
  ____|________________|___________________|________________________|__________
  |[Record exists]     |                   |                        |         |
  |   |                |                   |     Get Record         |         |
  |   |                |                   |----------------------->|         |
  |   |                |                   |                        |         |
  |   |                |                   |--------+               |         |
  |   |                |                   |        | Set UI Values |         |
  |   |                |                   |<-------+               |         |
  |   |                |                   |                        |         |
  |   |                |                   |   Update Record        |         |
  |   |                |                   |----------------------->|         |
  |   |                |                   |                        |         |
  |   |                | Send Message      |                        |         |
  |   |                |<------------------|                        |         |
  |   |                |  "Record found,   |                        |         |
  |   |                |   Updated"        |                        |         |
  |___|________________|___________________|________________________|_________|
      |                |                   |                        |
      |                |                   |                        |
______|________________|___________________|________________________|_________
| [Record does not     |                   |                        |         |
| exist]               |                   |                        |         |
|     |                |                   |--------+               |         |
|     |                |                   |        | Generate      |         |
|     |                |                   |        | Seqeuence     |         |
|     |                |                   |<-------+               |         |
|     |                |                   |                        |         |
|     |                |                   |   Create New Record    |         |
|     |                |                   |----------------------->|         |        
|     |                | Send Message      |                        |         |
|     |                |<------------------|                        |         |
|     |                |  "New Record      |                        |         |
|     |                |   Created"        |                        |         |
|_____|________________|___________________|________________________|_________|
      |                |                   |                        |
      |                |                   |                        |
      |                |                   |                        |