Концепт (концептно-ориентированное программирование)

Концепт это конструкция состоящая из одного класса объектов и одного класса ссылок. Класс объектов является обычным классом как определяется в объектно-ориентированном программировании и следовательно концепт без класса ссылки (с пустым классом ссылки) эквивалентен классу. Каждый концепт имеет один родительский концепт, называемый надконцептом, который указывается в определении посредством отношения включения.

Концепт является весьма общей конструкцией и может быть использован в самых разных целях, например, для моделирования данных, программирования, а также анализа и дизайна систем. Ниже приводится пример определения концепта:

concept MyConcept in ParentConcept 
  class {
    int myField; 
    int myMethod() { ... } 
    void continue() { ... } 
    void create() { ... } // Object constructor 
    void delete() { ... } // Object destructor 
  }
  reference {
    int id; // Identifier 
    int myMethod() { ... } 
    void continue() { ... } // Reference resolution 
    void create() { ... } // Reference constructor 
    void delete() { ... } // Reference destructor 
  }

Концепт является основной конструкцией в концептно-ориентированном программировании (КОП), которое является парадигмой программирования следующего поколения. Экземпляры класса объектов, называемые объектами, передаются опосредованно по ссылке. Экземпляры класса ссылок, называемые ссылками, передаются по значению и предназначены для опосредованного представления объектов. Концепты используют точно так же как и обычные классы при объявлении переменных, полей, параметров, возвращаемых значений и других элементов, где требуется тип.

Класс объектов и класс ссылок могут давать два определения одного метода, которые называются двойственными. Например, myMethod в вышеприведенном примере имеет два определения в классе объектов и классе ссылок. Важным применением двойственных методов является управлением жизненным циклом. Концепты могут определять пару двойственных методов создания (называемых create) и пару методов удаления, называемых delete. Методы создания/удаления класса объектов предназначены для инициализации/очистки объекта, и они эквивалентны конструктору и деструктору. Методы создания/удаления класса ссылок предназначены для инициализации/очистки ссылки, и они являются специфичной чертой КОП.

Родительский концепт предоставляет среду для своих дочерних концептов, в частности, обеспечивая функции представления и доступа (ПД) к дочерним концептам. Таким образом, любой запрос на доступ проходит через все родительские концепты пока не достигнет целевого дочернего концепта. Вершина иерархии включения концептов является корневым концептом, который предоставляет механизм представления и доступа, используемый в системе по умолчанию. Если все концепты включены в корневой концепт (и имеют пустой класс ссылок), то мы получаем общепринятый объектно-ориентированный подход.

Идея концептно-ориентированного программирования состоит в том, что каждый промежуточный концепт в иерархии концептов обеспечивает уровень опосредования для своих дочерних концептов. Чтобы поддержать такой опосредованный доступ, концепт должен определить два специальных (двойственных) метода продолжения, называемых continue. Метод продолжения класса объектов вызывается сразу после того, как ссылка на этот объект была полностью разрешена и может использоваться для непосредственного доступа (тем самым мы входим в область данного объекта). Метод продолжения класса ссылок используется для разрешения этой ссылки в корневую ссылку, которая может использоваться для непосредственного доступа к представляемому объекту. Таким образом, методы продолжения предоставляют дверь или портал, который используется для пересечения границы пространства, описываемого концептом. Когда запрос на доступ пересекает границу пространства, автоматически срабатывает определенные функции.

См. также

Ссылки

 
Начальная страница  » 
А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ы Э Ю Я
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9 Home