INFO
Sylabus
Standard ODMG, część 2
1. Plan wykładu
2. Typy abstrakcyjne, typy konkretne, polimorfizm, wielo-dziedziczenie
3. Ekstensje, klucze
4. Obiekty
5. Kolekcje
6. Literale
7. Użycie deklaracji struktur
8. Deklaracje atrybutów
9.Związki
10. Operacje
11. Wyjątki
12. Metadane
13. Transakcje
Skorowidz
Wyście:
Wyklad VIII. Wprowadzenie do standardu ODMG, część 2:
Model obiektowy (KURS SSR)
I II III IV V VI VII VIII IX X XI XII XIII XIV
« poprzedni punkt   następny punkt »

5. Kolekcje (collections)

Kolekcje: zestawy elementów tego samego typu.
Elementami mogą być obiekty, literale oraz kolekcje.

Set<t> Zbiór elementów typu t; powtórzenia elementów są niedopuszczalne.
Bag<t> Wielo-zbiór elementów typu t; powtórzenia są dopuszczalne.
List<t> Sekwencja elementów typu t (dowolnie rozszerzalna lub skracalna)
Array<t> Tablica elementów typu t, dostęp poprzez indeks (będący l. całkowitą)
Dictionary<t,v> Zbiór par <klucz,wartość>, gdzie klucz jest unikalny.

Kolekcje są wyposażone w zestaw operacji:
interface Collection: Object{ 
   exception                InvalidCollectionType{}; 
   unsigned long        cardinality(); 
   boolean                is_empty(); 
   void                        insert_element( in any element); 
   void                        insert_element(in any element); 
   boolean                contains_element( in any element); 
   Iterator                create_iterator(in boolean stability); 
   ...                        }

Iterator: mechanizm sekwencyjnego obiegu elementów kolekcji.
Stabilność iteratora: usunięcie lub dodanie elementu do kolekcji w trakcie obiegu nie zakłóca spójności przetwarzania. Iteratory “niestabilne” - silny wpływ filozofii C++.

Operatory do przetwarzania kolekcji, np.
interface Set : Collection{ 
   Set        union_with( in Set other ); 
   Set        intersection_with(in Set other ); 
   Set        difference_with( in Set other ); 
   boolean is_subset_of( in Set other ); 
   boolean is_proper_subset_of( in Set other ); 
   boolean is_superset_of( in Set other ); 
   boolean is_proper_superset_of( in Set other ); 
};

Kolekcje takie jak Bag,List, etc. mają szereg dodatkowych operatorów, np. sumę wielozbiorów, konkatenację, itd.

(2kB)



6. Literale (literals)

Inaczej wartości.
Typy atomowe literali (IDL):
long, short, unsigned long (ulong), unsigned short (ushort), float, double, boolean, octet, char (character), string, enum (enumeration)Typy atomowe literali (IDL):
Np.: attribute enum Płeć{mężczyzna, kobieta}
Kolekcje literali:
set, bag, list, array, dictionary
Strukturalne literale :
Date, Interval, Time, Timestamp (różne konwencje wartości odnoszących się do czasu)
Struktury definiowane przez użytkownika:
struct - generator struktur (składnia C/C++)
Struktury mogą być dowolnie kombinowane, np. struktury zbiorów, zbiory struktur, tablica struktur, itd.

(3kB)

« poprzedni punkt   następny punkt »