Операции
Общий синтаксис представления операции имеет вид
Видимость Имя (Список Параметров): ВозвращаемыйТип {Характеристики}
Примеры объявления операций:
записать + записать зарегистрировать) и: Имя, ф: Фамилия) балансСчета ( ) : Integer нагревать ( ) (guarded) | Только имя Видимость и имя Имя и параметры Имя и возвращаемый тип Имя и характеристика |
В сигнатуре операции можно указать ноль или более параметров, форма представления параметра имеет следующий синтаксис:
Направление Имя : Тип = ЗначениеПоУмолчанию
Элемент Направление может принимать одно из следующих значений:
in out inout | Входной параметр, не может модифицироваться Выходной параметр, может модифицироваться для передачи информации в вызывающий объект Входной параметр, может модифицироваться |
Допустимо применение следующих характеристик операций:
leaf isQuery sequential guarded concurrent | Конечная операция, операция не может быть полиморфной и не может переопределяться (в цепочке наследования) Выполнение операции не изменяет состояния объекта В каждый момент времени в объект поступает только один вызов операций. Как следствие, в каждый момент времени выполняется только одна операция объекта. Другими словами, допустим только один поток вызовов (поток управления) Допускается одновременное поступление в объект нескольких вызовов, но в каждый момент времени обрабатывается только один вызов охраняемой операции. Иначе говоря, параллельные потоки управления исполняются последовательно (за счет постановки вызовов в очередь) В объект поступает несколько потоков вызовов операций (из параллельных потоков управления). Разрешается параллельное (и множественное) выполнение операции. Подразумевается, что такие операции являются атомарными |
Дата добавления: 2015-03-07; просмотров: 745;