|
UML - как технически реализуются сообщения от объекта к объекту?
|
|||
---|---|---|---|
#18+
На многих диаграммах описывается такая вещь, как сообщения. "Один объект передает сообщение другому объекту", изображается стрелкой с закрашенным наконечником. Так и представляется посылка какого-то пакета. Но когда начинаешь реализовывать в каком-либо языке программирования, становится понятно, что все несколько по-другому, это, например, оказывается просто вызовом функции. Но в этом как бы нет той красоты, которая была на диаграмме. И ясности в этом вопросе так и нет. Хотелось бы как-то упорядочить в голове, какие существуют способы реализации этого в разных языках программирования, например, в Delphi. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2012, 14:39 |
|
UML - как технически реализуются сообщения от объекта к объекту?
|
|||
---|---|---|---|
#18+
В конечном счете это и есть вызов функции. Просто на UML обычно схема укрупнена, многие детали опускаются. И сообщение может быть технически реализовано как вызов 10-ти ф-й, причем в разных процессах и на разных серверах, но семантически - это "одно сообщение" ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2012, 14:56 |
|
UML - как технически реализуются сообщения от объекта к объекту?
|
|||
---|---|---|---|
#18+
kmaw, в Turbo Vision, помню, было событийное управление через HandleEvent. Объекты обменивались сообщениями в чистом виде, была маршрутизация сообщений. В Delphi этого нет, убрали. Видимо, не посчитали нужным? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2012, 14:59 |
|
UML - как технически реализуются сообщения от объекта к объекту?
|
|||
---|---|---|---|
#18+
Еще, если, например, объект A передает сообщение объекту B, то это реализуется как вызов в объекте A метода, принадлежащего объекту B Код: pascal 1. 2. 3. 4.
или наоборот: Код: pascal 1. 2. 3. 4.
? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2012, 15:07 |
|
UML - как технически реализуются сообщения от объекта к объекту?
|
|||
---|---|---|---|
#18+
иными словами, метод, выполняющий основную работу, находится в объекте А, и только использует данные объекта B, или метод находится у B, а объект А только вызывает его, передавая ему свои данные? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2012, 15:11 |
|
UML - как технически реализуются сообщения от объекта к объекту?
|
|||
---|---|---|---|
#18+
приводить UML во взаимно-однозначное соответствие коду я смысла не вижу. сообщение можно передать и как прямой вызов функции, и как калбек, сложить в какую-либо очередь, и еще как-то там. если это по семантике "сообщение" - то на UML-это сообщение. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2012, 15:55 |
|
UML - как технически реализуются сообщения от объекта к объекту?
|
|||
---|---|---|---|
#18+
svnvladиными словами, метод, выполняющий основную работу, находится в объекте А, это самое главное. Сообщения лучше рассматривать по срезу "синхронность". Т.к. есть основной процесс - поток. Где "идёт код" Поэтому, может быть так: Код: sql 1. 2. 3. 4.
- А передал сообщение вызовом метода И передал параметры в виде Самого себя \ строки \ числа \ ... Т.е. 2-ой вариант не подходит, т.к. код не гуляет в объекте B, а в первом - "гуляет" (выполняется) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2012, 15:33 |
|
|
start [/forum/topic.php?fid=33&msg=38053384&tid=1547763]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
46ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
others: | 328ms |
total: | 446ms |
0 / 0 |