gpt4 book ai didi

uml - 返回线(虚线)在序列图中究竟代表什么?

转载 作者:行者123 更新时间:2023-12-04 00:45:40 41 4
gpt4 key购买 nike

我们应该在序列图中的哪些步骤中使用返回线?

<- - - - - - 

最佳答案

返回行表示从方法/函数调用返回的控制流

对于返回结果的方法/函数,它表示正在返回一个值。

例如。

    result
<-------------

否则,对于 void 方法/函数,它只是箭头
<-------------

对于异步调用,由于调用者不会将控制权交给被调用的方法/函数,如果它返回结果(例如非空方法/函数),我只会使用返回行

希望有帮助

编辑

这是我为搜索用例创建的序列图示例
example of a sequence diagram I created for a search use case http://web10.twitpic.com/img/107669708-1d6f9df82534756bfe2a684d4480cc43.4c00f3b0-full.png

请注意,匿名用户仅进行异步调用,因为作为人类,他们不会将控制权交给应用程序,因此没有返回箭头

还要注意 search() 调用的返回箭头,它返回“结果”

最后,创建箭头( ------|> )没有返回箭头,因为它们隐式返回实例化对象

编辑 2

针对您更新的问题:

我不会有用户操作的返回箭头,例如 login(),因为结果不会以与对象相同的方式返回给用户,而是通常输出到某种 UI。另一种看待它的方式是用户在程序的范围之外,所以直接返回结果是没有意义的。

从你的图中,我的解释(在一种伪代码中)是:
class User{
public void login()
public void sendEmail()
}

class Patient{
public void getPatient()
}

class Doctor{
public void getDoctor()
}

class Appointment{
//This method returns something, but it's not clear what, so I assumed a boolean
public boolean checkAvailability()
}

如您所见,除了其中一种方法之外,所有方法都不会返回任何内容。如果那是你想要的,那很好,但我怀疑事实并非如此。

我还怀疑您不打算将 sendEmail() 方法放在 User 类中。

您还应该考虑 checkAvailability() 返回时发生的情况,因为控制流似乎返回到 User 然后莫名其妙地跳回 Appointment

关于uml - 返回线(虚线)在序列图中究竟代表什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2934687/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com