Что именно представляет собой линия возврата (пунктирная линия)в диаграмме последовательности?

в каких шагах мы должны использовать возвращаемую строку в диаграмме последовательности?

<- - - - - - 

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"

пунктирная стрелка