1 Implementacja asocjacjiJarek Gadomski Kuba Morkis
2 Zagadnienia Asocjacja binarna Atrybuty i klasy asocjacjiAsocjacja kwalifikowana Asocjacja n-arna Agregacje i kompozycje
3 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
4 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;
5 Atrybuty i klasy asocjacjiStosuje 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..*
6 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.
7 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;
8 Asocjacja kwalifikowanaKwalifikator 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
9 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;
10 Asocjacja n-arna Reprezentuje związek zachodzący pomiędzy n obiektami.Student Sala Wykładowca Zajęcia * Przedmiot Data
11 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 *
12 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 *
13 Agregacja i kompozycjaAgregacje oraz kompozycje służą do przedstawiania zależności typu część – całość. Sieć komputerowa Komputer * AGREGACJA Książka Strony * 1 KOMPOZYCJA
14 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 *
15 Jarek Gadomski Kuba MorkisKONIEC Jarek Gadomski Kuba Morkis