Легализация ссылок и их двойственность объектам

Jan 16, 2007 11:08

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

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

Наличие ссылки является главным и необходимым условием для всего, что хочет проявить или обнаружить себя как нечто реально существующее. Другими словами, без ссылки просто невозможно узнать, существует ли объект или нет. Таким образом, описание объекта в ООП посредством класса объектов недостаточно для того, чтобы сделать этот объект воспринимаемым и потому полезным. В ООП эта проблема решается с помощью системного класса ссылки, который "наследуется" любым другим классом объектов. В концептно-ориентированном программировании (КОП) любой класс объектов может объявить свой собственный класс ссылок, используя новую программную конструкцию, называемую концептом. Здесь важно, что два класса всегда определяются парами, и тем самым сохраняется их неотделимость и взаимная зависимость. Ссылки предоставляют интерфейс или средство доступа к объектам, тогда как объекты могут обладать поведением, которое ассоциируется с конкретной точкой в пространстве.
Previous post Next post
Up