Полиморфизм
На сегодняшний день стандартное понимание отношений классов оперирует практически только правилами наследования классов. Т.е. дочерний класс наследует свойства родительского класса.Такая иерархия классов присутствует и в технологии Nexus. Но дополнительно к этому, предварительно описав схему отображения, можно преобразовывать объекты одного класса в объекты другого без иерархического подчинения классов, что представляет собой реализацию качественно новых классовых отношений – полиморфных или полиморфизма.
Полиморфизм является отношением между объектами классов и определяет способность превращения объектов одного класса в объекты другого. Причем как было сказано ранее превращение не зависит от иерархического дерева классов, а является только функцией от карты отображения столбцов таблиц классов друг в друга. В общем случае превращение из ‘любого класса – в любой’ становится неподъемной: карту отображения построить сложно и операции преобразования и отката преобразованного усложняются.
Решение задачи полиморфизма в общем виде мне неизвестна. Здесь реализована частная задача полиморфизма для простого класса с гридом и полиморфизмом в виде цепочки классов (or nexus polymorphism). Объекты классов могут преобразовываться, но не произвольно, а только от PRE класса к рассматриваемому, и от рассматриваемого – к POST классу. Создав таким образом ряд полиморфических классов и определив для каждого PRE и POST карты отображения можно строить цепочечные схемы превращения объектов классов какой угодно сложности и длины.
Для полиморфических классов введены групповые операции преобразования из класса PRE в текущий класс и из текущего класса в POST класс и обратно, которые появляются в меню свойств над документами описания классов, и одиночные операции преобразования, которые появляются в меню свойств над документами объектов классов.
Таким образом, если в папке четвертый класс были документы 10,11,12 а в папке пятый класс документы 13,14,15, то после групповой операции из четвертого в пятый в папке пятый класс будут шесть документов 10,11,12,13,14,15.
Конечно, здесь дана только простейшая принципиальная схема превращения и практические ситуации столь разнообразны, что трудно найти универсальную модель поведения объектов классов. Но никто и не претендует здесь на общее решение поставленных задач. Тот практический костяк, который здесь дается, при небольших усилиях разработчиков, может быть модифицирован под конкретную задачу.
52
Как тот богач, имею я всегда
Ключ от сокровища души моей.
Но, как всегда, теряю иногда
Его я в суете текущих дней.
Поэтому желанны и редки,
Как праздники в текущем ряде лет,
Находки удовольствия деньки,
Свободы драгоценнейший предмет.
Подобно времени, хранящему тебя
От плесени душевного безделья,
Вдруг некто, ключ твоей души найдя,
Блистает бриллиантом в ожерельи.
Живу надеждою, когда лишен
И в торжестве, найдя, свободой одарен.