知识卡片

伪消息表达循环与条件

普通读书笔记卡 · 1943.c

内容

UML 1的迭代标记(消息名加*号)和警戒条件(方括号条件)已从UML 2序列图移除,但有缺陷:警戒条件无法表示互斥条件集合,且只对单条消息管用,同一块内多条消息从同一激活发出就不够用。流行的非官方做法是伪消息(pseudomessage)——把循环或条件写在自调用表示法变体上,不画消息箭头以提示非真实调用,必要时给激活条加阴影,这是比官方[[交互框表达循环与条件|交互框]]更受偏好的惯例。

参考来源

- 位置:《UML精粹:标准对象建模语言简明指南(第3版)》第4章《序列图》(源文件:_epub-src/EPUB/3.xhtml) - 结论依据:原文说明迭代标记和警戒条件"都只在单个消息发送时管用,如果在同一个循环或条件块内,有多个消息从单个激活发送出去,就不那么管用了",进而引出"有一种流行的非官方习惯是使用伪消息(pseudomessage),把循环条件或警戒条件放在自调用表示法的变体上"。 - 原始内容:两种表示法都只在单个消息发送时管用,如果在同一个循环或条件块内,有多个消息从单个激活发送出去,就不那么管用了。为了处理这个问题,有一种流行的非官方习惯是使用伪消息(pseudomessage),把循环条件或警戒条件放在自调用表示法的变体上……我没有用消息箭头来展示……不画出来更能增强它不是真实调用的印象。