OpenU.Ru
Приписывание значений параметру с целью получения
конкретного элемента вместо формального параметризированного элемента. Отношение
связывания представляет собой зависимость. Оно
используется для связывания шаблонов с целью образования новых элементов модели.
См. bound element; template.
Семантика
Параметризованное определение, такое как операция, сигнал или шаблон, описывает
форму элемента. При этом такой элемент невозможно будет использовать до тех
пор, пока его параметры не обретут конкретных значений. Связывание представляет
собой зависимость, которая представляет собой приписывание значений параметрам
с целью образования новых элементов. Результатом использования связывания с
операциями являются вызовы, с сигналами - отправленные сигналы, с шаблонами
- новые элементы модели. Связывание первых двух производится на этапе выполнения
для получения сущностей времени выполнения. Как правило, они не фигурируют в
модели, разве что в качестве примеров. Значения аргументов определяются во время
работы системы.
Шаблон связывается во время моделирования. Цель этого
связывания - создание нового элемента для дальнейшего использования в модели.
Значениями аргумента могут быть прочие элементы модели,
например классы, а также значения простых типов данных, например строки и числа.
Отношение связывания определяет значения параметров шаблона, создавая при этом
новый элемент, который можно напрямую использовать в модели.
В отношении связывания различают поставщик (шаблон), клиент (вновь созданный
путем связывания элемент) и список значений, присваиваемых параметрам шаблона.
Связанный элемент определяется путем подстановки
значения аргумента вместо соответствующего параметра в копии тела шаблона. При
этом классификация каждого аргумента должна совпадать с объявленной классификацией
параметров или быть ее потомком.
Отношение связывания никак не влияет на сам шаблон. Каждый шаблон много раз
может проходить через отношение связывания, и каждый раз производить при этом
новый элемент.
Нотация
Связывание обозначается с помощью ключевого слова "bind", которое
пишется возле пунктирной стрелки, соединяющей новый элемент (хвост стрелки)
с шаблоном (наконечник стрелки). Значения аргументов перечисляются через запятую,
весь список выражении берется в круглые скобки и помещается непосредственно
за ключевым словом "bind" (рис. 34).
Можно использовать еще одну форму нотации - более компактную, нежели предыдущая.
В ней используется соответствие имен, при котором отпадает необходимость в использовании
стрелок. Так, для обозначения нового элемента используется имя шаблона, за которым
следует список текстовых выражений, разделенных между собой запятыми. Весь список
берется в угловые скобки: <аргументсписок>. В обоих случаях аргумент представлен
в виде строки текста, которая вычисляется статически во время построения модели,
а не динамически, как аргумент операции или сигнала.
На рис. 34 с помощью первой нотации (с использованием стрелок) показано объявление
нового класса AddressList, чье имя можно использовать в различных моделях и
выражениях. Неявная встроенная форма Farray<Point,3> объявляет некий "анонимный
класс", не имеющий собственного имени. Его можно использовать в выражениях,
имеющих встроенный (inline) синтаксис. Ни в том, ни в другом случае никакие
дополнительные атрибуты или операции не могут быть объявлены. Для такого рода
расширений необходимо определять подкласс.
Рис. 34. Объявление шаблона и связывание
Стандартные элементы
bind (связывать).