double arrow

Синхронные и асинхронные вызовы

Если вы были очень внимательны, то заметили, что стрелки в послед­них двух диаграммах отличаются от предыдущих. Это небольшое от­личие достаточно важно в UML версии 2. Здесь закрашенные стрелки показывают синхронное сообщение, а простые стрелки обозначают асинхронное сообщение.

Если вызывающий объект посылает синхронное сообщение (synchro­nous message), то он должен ждать, пока обработка сообщения не будет закончена, например при вызове подпрограммы. Если вызывающий объект посылает асинхронное сообщение (asynchronous message), то он может продолжать работу и не должен ждать ответа. Асинхронные вызовы можно встретить в многопоточных приложениях и в промежу­точном программном обеспечении, ориентированном на сообщения. Асинхронность улучшает способность к реагированию и уменьшает количество временных соединений, но сложнее в отладке.

Разница в изображении стрелок едва уловима; действительно их до­вольно трудно отличить. Кроме того, это изменение, введенное в UML1.4, не обладает обратной совместимостью, поскольку до этого асинхронные сообщения обозначались половинными стрелками, как показано на рис. 4.5

На мой взгляд, такое различие слишком незаметно, Я бы советовал выделять асинхронные сообщения при помощи старых половинных стрелок, которые больше привлекают взгляд. Читая диаграмму после­довательности, не спешите делать предположения о синхронности по


виду стрелок до тех пор, пока не убедитесь, что автор умышленно на­рисовал их разными.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



Сейчас читают про: