EA&UML日拱一卒--序列图(Sequence Diagram)::连续

网友投稿 708 2022-10-13

EA&UML日拱一卒--序列图(Sequence Diagram)::连续

EA&UML日拱一卒--序列图(Sequence Diagram)::连续

今天是序列图的最后一个话题,连续(continuation)。在UML中是这样定义连续的:

交互中的一个标签,允许将条件拆分成两个片段。而这两个片段在语义上是连在一起的。

示例

这里采用EA帮助系统中的例子,当然版权也属于SparxSystems。首先是主流程。

eatab调用repos:File的reqConn方法,如果请求成功,则调用logConn后执行pathSucc连续标签引导的部分,如果失败,则执行pathFail连续标签引导的部分。两个标签分别引导的处理被设计到了ConnHandler中。

pathSucc标签接下来的处理是向estab返回connListen,而pathFail标签接下来的处理是调用ReCt的trackFail方法跟踪错误。

使用了连续标签以后,使用者可以自由定义成功和失败时的处理。

如果本文就这么结束了,是不是觉得太简单了?

之所以把本文拖到今天才写是因为有一个疑问一直没有解决:如果连续的效果仅限于此的话,完全可以通过保存reqConn的执行结果,然后再利用参数传递给ConnHandler的方式来实现,这样只会更加清晰。

我们忽略了什么呢?

还是用自创的例子来说明吧。这里以某智能摄像头为例。

基本流程如下:

5STimer每次发生Timeout以后会向SmartCamera发出通知,SmartCamera接到通知后拍摄照片,然后把拍摄的照片向云端传送。这里为拍摄成功,拍摄失败,传送成功,传送失败分别准备了连续标签以备其他处理使用。

下面是一种处理方式的例子:

这里只是简单地在拍照失败,云推送失败时向MobilePhone报告错误信息。也可以定义其他的处理,例如云推送失败时本地保存等等。

在本例中,拍照/推送的处理处于无限循环的处理中,永远(基本上)也等不到处理结束的时候。因此也就不存在返回值如何如何了。

总结

连续(continuation)更像条件分支中的回调函数。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:EA&UML日拱一卒-活动图::数据区
下一篇:MVCnPHP- PHP框架
相关文章

 发表评论

暂时没有评论,来抢沙发吧~