Комплексная ссылка
Материал из Википедии — свободной энциклопедии
Комплексная ссылка в концептно-ориентированном программировании (КоП) используется для представления объектов в иерархическом виртуальном адресном пространстве. Она состоит из последовательности сегментов, где каждый следующий сегмент является локальным идентификатором относительно предыдущего сегмента. Комплексная ссылка является аналогом почтового адреса. Например, комплексная ссылка могла бы быть записана следующим образом: <"Россия"; "Москва"; "Красная площадь"; 1>. Она состоит из четырех сегментов, начиная с называния страны и заканчивая номером дома.
В КоП формат каждого сегмента описывается программистом в классе ссылки концепта. Последовательность сегментов в комплексной ссылке определяется с помощью отношения включения, которое обобщает наследование классов. Таким образом, концептов и отношения включения можно определять пользовательские виртуальные адресные пространства, которые затем используются для представления объектов посредством комплексных ссылок.
В следующем примере каждый счет может иметь много подсчетов, которые описываются в соответствующих концептах:
concept Account reference { String accountNumber; ... } object { ... } concept SavingsAccount in Account reference { String subAccountNumber; ... } object { ... }
Таким образом, комплексная ссылка на конкретный сберегательный счет состоит из двух сегментов: один описывает основной счет, а другой описывает подсчет внутри главного счета. Например, переменная, ссылающаяся на счет будет включать в действительности два номера для главного счета и для подсчета:
Account account = getAccount(); SavingsAccount savingsAccount = getAccount();
Здесь первая переменная может содержать либо односегментную ссылку на объект концепта Account
, либо двухсегментную ссылку на объект концепта SavingsAccount
. Вторая переменная будет включать комплексную ссылку, состоящую из двух или более сегментов.
Доступ к объектам, представленных комплексной ссылкой, осуществляется прозрачным образом при наличии иллюзии мгновенного воздействия. При этом программисту предоставляются средства для управления механизмом доступа. В частности, к комплексным ссылкам можно применять методы точно так же, как если бы они были обычными примитивными ссылками:
account.getBalance(); savingsAccount.credit(25);
[править] См. также
- Концептно-ориентированное программирование
- Концепт
- Включение
- Комплексная ссылка
- Метод продолжения
- Двойственные методы
- Концептно-ориентированная модель