ISSN 0236-3933. Вестник МГТУ им. Н.Э. Баумана. Сер. “Приборостроение”. 2012
107
2)
языки, ориентированные на передачу сообщений (
message-
oriented
),
в которых для взаимодействия между объектами выделяет-
ся отдельный коммуникационный уровень, отвечающий за обмен
сообщениями между объектами, например Objective-C; структура
объекта в языке программирования, ориентированном на передачу
сообщений, представлена на рис. 1,
в
.
В языке программирования, ориентированном на передачу сообще-
ний, каждый объект любого класса содержит данные (свойства) и мето-
ды (процедуры, функции), которые могут использовать эти данные.
Уровню данных можно условно поставить в соответствие уро-
вень M универсальной структуры, а уровню методов – уровень
K универсальной структуры.
В языке программирования, ориентированном на передачу сооб-
щений, добавляется уровень сообщений, который соответствует
уровню C универсальной структуры. В отличие от универсальной
структуры в объектно-ориентированном подходе уровни M, K и C
переставлены местами.
Одно из основных преимуществ языка программирования, ори-
ентированного на передачу сообщений, – простота отслеживания
прихода сообщения. В таких языках используются программные кон-
струкции вида: «если получено сообщение 1, то вызвать метод 1,
иначе, если получено сообщение 2, то вызвать метод 2». Таким обра-
зом, маршрутизация сообщений реализуется не вызывающим, а вы-
зываемым объектом.
Для реализации рассмотренной конструкции в языке программи-
рования, ориентированном на вызов функций, требуется создание
библиотек, которые эмулируют работу с сообщениями, т. е. фактиче-
ски дополняют этот язык до языка программирования, ориентиро-
ванного на передачу сообщений.
Реализация поведения адаптивного объекта.
Для описания по-
ведения объекта необходимо, чтобы он имел возможности выполне-
ния действий и реакции на внешние события.
Первая возможность реализуется и в языке программирования,
ориентированном на вызов функций, и в языке программирования,
ориентированном на передачу сообщений, путем вызова методов.
Вторая возможность реализуется в языке программирования, ориенти-
рованном на передачу сообщений, с помощью реакции на сообщения.
Отметим, что в языке программирования, ориентированном на
вызов функций, также есть реакция на события. Так, вызов метода
и представляет собой реакцию на событие. Однако в таком языке
программирования порядок вызова методов определяется вызываю-
щим объектом, т. е. предполагается, что вызываемый объект только
выполняет требуемые действия и не имеет собственного поведения.