INFO
Sylabus
Standard ODMG, część 6
1. ODMG 2.0: Wiązanie do C++ - charakterystyka
2. Co to jest “niezgodność impedancji”?
3. Założenia projektowe wiązania do C++
4. Podstawowa architektura wiązania
5. Odwzorowanie elementów modelu ODMG na C++
6. C++ ODL
7. Jednokierunkowe związki
8. C++ OML
9. Związki
10. Klasy do obsługi kolekcji
11. C++ OQL
12. ODMG 2.0: przykład w C++
13. ODMG-93 C++: Schowek aplikacji
14 Związki ze środowiskiem OMG ORB
Skorowidz
Wyście:
Wyklad XII. Wprowadzenie do standardu ODMG, część 6:
Wiązanie do C++ (KURS SSR)
I II III IV V VI VII VIII IX X XI XII XIII XIV
« poprzedni punkt   następny punkt »

5. Odwzorowanie elementów modelu ODMG na C++


Typy obiektów i literali odwzorowują się na klasy C++. Zagnieżdżony obiekt jest traktowany jako literal.

Struktura ODMG odwzorowuje się na struct lub class w C++

Generatory typów kolekcji (set, bag, list,...) są odwzorowane jako klasy szablonowe (template classes) w C++.

Typy kolekcji są reprezentowane jako klasy kolekcji; podobnie dla wystąpień.

template <class T> class <d_Set> : public d_Collection<T>{...}; 
class Statek{...} 
d_Set<d_Ref<Statek>> Linia_Indyjska;
d_Set<T> jest klasą szablonową dla zbiorów
d_Set<d_Ref<Statek>> jest klasa dla zbioru statków
Linia_Indyjska jest konkretną kolekcją (referencji).
Tylko maniak C++ może twierdzić, że podane notacje są prościutkie...

Nazwane operacje modelu obiektowego są odwzorowane na funkcje członkowskie C++

Dla pewnych operacji wiązanie do C++ daje alternatywne formy, z nazwą funkcji i z operatorem infixowym; np. d_Set::union_with ma również formę +=.

Operacje zwracające wartości boolowskie są odwzorowane w funkcje zwracajace int.

Operacje create i delete są odwzorowane jako konstruktory i destruktory C++.

Listy i tablice sa odwzorowane na d_Varray (tablicę o zmiennej długości).

Związki nie są bezpośrednio podtrzymywane przez C++. Zamiast tego, ODMG przewiduje specyficzne klasy szablonowe pozwalające na odwzorowanie związków. Związek jest zaimplementowany poprzez wskaźniki.

Ekstensje i klucze nie są odwzorowywane. Nie można używać wielu nazw dla obiektu.

Nie są odwzorowane funkcje administracyjne takie jak tworzenie BD lub indeksu.

Wyjątki są obsługiwane poprzez standardowy mechanizm wyjątków C++.



« poprzedni punkt   następny punkt »