2013-04-23 2 views
1

Мне нужно смоделировать систему, в которой объект класса Person вызовет статический метод getBook(...) : Book класса Book, который вернет экземпляр конкретной книги.Ссылка на экземпляр заданного класса в диаграммах последовательностей

Как вы ссылаетесь на экземпляр книги, полученный в результате операции?

В настоящее время, я могу думать о двух подходов, ни один из которых я когда-либо видел б/у, поэтому я ищу для правильного подхода.

Первый подход заключается в вызове методов непосредственно на экземпляр книги, например, если ссылка, возвращаемая getBook(...) : Book, называется matchingBook, я бы использовал matchingBook.doSomething(...), что бы иметь локальную переменную.

Второй способ, который я нахожу больше в строке диаграмм последовательности, - позволить экземпляру книги, возвращаемому операцией, появиться со своей собственной линией жизни, например. рядом с классом книги, и ссылаясь на него стрелкой с пометкой doSomething(...).

Однако со вторым подходом не очевидно, что этот объект фактически является тем, который был возвращен операцией.

ответ

2

Второй подход является правильным. Каждый раз, когда вы вызываете операции над объектом, возвращаемым первой операцией, вы не можете добиться большего, чем совпадение имен между результатом первого вызова и жизненным циклом.

В любом случае, я не совсем понимаю, чего вы ожидаете от первого способа: где бы вы положили matchingBook.doSomething(...)? на стрелке, указывающей, какой спасательный круг?

+0

Это имеет смысл. Я думал просто использовать метод, не указывая ни на одну линию жизни. – whirlwin

+0

Как вы уже догадались, это невозможно, так как вызовы методов несут стрелки, которые, очевидно, имеют целевую линию жизни. – Steph

2

Второй подход является правильным. Для того, чтобы показать, что вы направляете на возвращаемый объект (matchingBook), вы можете добавить имя переменной в названии линии жизни, как это:

enter image description here

 Смежные вопросы

  • Нет связанных вопросов^_^