Что именно представляет собой линия возврата (пунктирная линия)в диаграмме последовательности?
в каких шагах мы должны использовать возвращаемую строку в диаграмме последовательности?
<- - - - - -
3 ответов
строка возврата представляет поток управления, возвращающийся из вызова метода/функции
в случае методов / функций, возвращающих результат, это будет означать, что возвращается значение.
Э. Г.
result
<-------------
В противном случае для методов/функций void это будет просто стрелка
<-------------
для асинхронных вызовов, поскольку вызывающий не дает управления вызываемому методу / функции, я бы использовал только возвращаемую строку, если бы она вернула результат (например, непустые методы/функции)
надеюсь, что это поможет
редактировать
вот пример схемы последовательности я создал для случая использования поиска пример схемы последовательностей, созданной для случая использования поиска http://web10.twitpic.com/img/107669708-1d6f9df82534756bfe2a684d4480cc43.4c00f3b0-full.png
обратите внимание, что анонимный пользователь делает только асинхронные вызовы, потому что, как человек, они не дают управление в приложении, следовательно, нет возврата стрелки
также обратите внимание на стрелку возврата вызова search (), которая возвращает "результаты"
наконец, создание стрелки ( ------|> ) не имеют стрелки возврата, поскольку они неявно возвращают экземпляр объекта
правка 2
В ответ на ваш обновленный вопрос:
у меня не было бы стрелок возврата для операций пользователя, таких как login (), поскольку результаты не возвращается пользователю таким же образом, как и объект, но обычно выводится в какой-то пользовательский интерфейс. Другой способ взглянуть на это заключается в том, что пользователь находится за пределами программы, поэтому нет смысла возвращать результаты напрямую.
из схемы, моя интерпретация (в виде псевдокода) будет составлять:
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() был в классе пользователя.
вы также должны учитывать, что происходит, когда checkAvailability() возвращается, поскольку поток управления, похоже, возвращается пользователю, а затем необъяснимо возвращается к назначению
Он представляет собой ответное сообщение операции.С помощью этого символа можно указать возвращаемые значения.
простой пример:
club member
|
| getName()
'------------------------>.
|
|
result: "lee" |
<- - - - - - - - - - - - '
String memberName = member.getName();
//memberName now contains "lee"
пунктирная стрелка