В отличие от метамодели стандарта
В отличие от метамодели стандарта ODMG , активно применяющей множественное наследование (что связанно с использованием языка C++, в котором эта функциональность присутствует), в нашей реализации используется только одиночное наследование. Многие современные ООЯП (C#, Java) не поддерживают множественное наследование, поэтому представленная иерархия упрощает отображение присутствующих в ней классов на типы, имеющиеся в целевом языке. В случае необходимости для получения преимуществ, которые раньше достигались за счёт использования множественного наследования, можно применять интерфейсы.
Следует отметить, что представленная иерархия является унифицированной и не зависит от типов данных, присутствующих в какой-либо конкретной РСУБД (КО3). В отличие от существующих работ, посвящённых методам ОРО и описанных с позиции их реализуемости в конкретной СУБД, представленная иерархия оперирует в конечном счёте группами типов, каждая из которых имеет в своём составе абстрактный корневой тип. Как видно на рис. 3, для классов активно используется отношение наследования, которое поддерживается не в каждой РСУБД. При этом во всех объектно-реляционных СУБД отсутствует наследование пользовательского типа от встроенного литерального. Имеется лишь возможность создания псевдонима типа, что по функциональным возможностям гораздо уже, чем отношение наследования.
Описанная иерархия может быть применена в любой предметной области, т.к. она ортогональна к любой из них и оперирует такими общими сущностями, как целые числа, дробные числа, символьные строки, бинарные строки и т.п. Этот подход удовлетворяет КО3 и не требует изменения представленных классов при реализации бизнес-объектов конкретной предметной области. Однако допускается введение дополнительных литеральных типов, унаследованных от объявленных ранее.
Все присутствующие классы не привязаны к каким-либо конкретным типам данных, имеющимся в языке программирования (КО3). Поэтому при реализации конкретного приложения потребуется задать отображение (mapping) литеральных типов данных объектной системы на встроенные типы ООЯП.
Содержание Назад Вперед