Implementacja asocjacji Jarek Gadomski Kuba Morkis
Zagadnienia Asocjacja binarna Atrybuty i klasy asocjacji Asocjacja kwalifikowana Asocjacja n-arna Agregacje i kompozycje
Asocjacja binarna (2-arna) Asocjacja - związek obrazujący relację zachodzącą między dwoma lub więcej klasami. Asocjacja binarna – najprostsza i najczęściej spotykana forma asocjacji Firma Osoba pracuje_dla 1..* 1
Implementacja Implementacja asocjacji binarnych odbywa się poprzez wybranie jednej z dwóch klas i przechowywanie w niej referencji do drugiej klasy. Przykład: class Firma { String nazwa; Osoba[] pracownicy; } class Osoba { String imie; String nazwisko;
Atrybuty i klasy asocjacji Stosuje się w celu pokazania dodatkowych atrybutów i właściwości asocjacji. Plik Użytkownik Uprawnienia dostęp dostępny dla * Pracownik nazwisko pesel adres Firma nazwa zarobek stanowisko zatrudnia 1 1..*
Implementacja W przypadku asocjacji wiele do wiele klasę asocjacji zamieniamy na zwykłą klasę. W innych przypadkach istnieje możliwość przeniesienia atrybutów asocjacji do klas podstawowych.
Implemencja class Pracownik { class Plik { } String nazwisko; class Uzytkownik { class Uprawnienia { int dostep; Plik nazwaPliku; Uzytkownik uzyszkodnik; class Pracownik { String nazwisko; String pesel; String adres; String zarobek; String stanowisko; } class Firma { String nazwa;
Asocjacja kwalifikowana Kwalifikator asocjacji jest atrybutem (lub zestawem atrybutów) klasy, który służy do wybrania podzbioru obiektów danej klasy. Uczelnia Student nr indeksu 1 1..* Uczelnia 1..* 1 Student nr indeksu kwalifikator asocjacji
Implementacja Asocjacje kwalifikowane implementujemy używając tablic asocjacyjnych (np. Hashtable). class Uczelnia { Hashtable studenci; public void dodajStudenta (String nrIndeksu, Student student) { studenci.put (nrIndeksu, student); } public void zlikwidujStudenta (String nrIndeksu) { studenci.remove(nrIndeksu); class Student { String nrIndeksu; String imie; String nazwisko;
Asocjacja n-arna Reprezentuje związek zachodzący pomiędzy n obiektami. Student Sala Wykładowca Zajęcia * Przedmiot Data
Asocjacja n-arna cd.. Asocjacje n-arne przydatne są w przypadku obiektów powiązanych ze sobą licznościami wiele do wiele. Obejście asocjacji n-arnej poprzez dodanie klasy: Student Sala Wykładowca Zajęcia Data Przedmiot sprawdzObecnosc() 1 *
Implementacja Student Sala Wykładowca Zajęcia Przedmiot Data Student * Przedmiot Data class Wykladowca { String imie; String nazwisko; String tytulNaukowy; } class Student { String nrIndeksu; class Sala { int numer; class Zajecia { Date data; String przedmiot; Wykladowca prowadzacy; Student[] studenci; Sala sala; Student Sala Wykładowca Zajęcia Data Przedmiot sprawdzObecnosc() 1 *
Agregacja i kompozycja Agregacje oraz kompozycje służą do przedstawiania zależności typu część – całość. Sieć komputerowa Komputer * AGREGACJA Książka Strony * 1 KOMPOZYCJA
Implementacja Agregacje i kompozycje implementujemy za pomocą kolekcji referencji do obiektów składowych. class Komputer { InetAddress nrIP; } class Siec { String domena; Komputer[] spisKomputerow; Sieć Komputerowa domena Komputer nrIP *
Jarek Gadomski Kuba Morkis KONIEC Jarek Gadomski Kuba Morkis