150 likes | 376 Views
Implementacja asocjacji. Jarek Gadomski Kuba Morkis. Zagadnienia. Asocjacja binarna Atrybuty i klasy asocjacji Asocjacja kwalifikowana Asocjacja n-arna Agregacje i kompozycje. pracuje_dla. Firma. Osoba. 1. 1..*. Asocjacja binarna (2-arna).
E N D
Implementacja asocjacji Jarek Gadomski Kuba Morkis
Zagadnienia • Asocjacja binarna • Atrybuty i klasy asocjacji • Asocjacja kwalifikowana • Asocjacja n-arna • Agregacje i kompozycje
pracuje_dla Firma Osoba 1 1..* 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
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; }
Plik zatrudnia Firma nazwa adres Pracownik nazwisko pesel adres * 1..* 1 Uprawnienia dostęp dostępny dla zarobek stanowisko * Użytkownik Atrybuty i klasy asocjacji • Stosuje się w celu pokazania dodatkowych atrybutów i właściwości asocjacji.
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.
class Plik { } 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; String adres; } Implemencja
Uczelnia nr indeksu Student 1 1..* 1 Uczelnia nr indeksu kwalifikator asocjacji 1..* Student Asocjacja kwalifikowana • Kwalifikator asocjacji jest atrybutem (lub zestawem atrybutów) klasy, który służy do wybrania podzbioru obiektów danej klasy.
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; } Implementacja • Asocjacje kwalifikowane implementujemy używając tablic asocjacyjnych (np. Hashtable).
Wykładowca * * Student Sala * Zajęcia Przedmiot Data Asocjacja n-arna • Reprezentuje związek zachodzący pomiędzy n obiektami.
Wykładowca 1 * Zajęcia Student Sala 1 * * * Data Przedmiot sprawdzObecnosc() 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:
Wykładowca * * Student Sala * Zajęcia Przedmiot Data Wykładowca 1 * Zajęcia Student Sala 1 * * * Data Przedmiot sprawdzObecnosc() Implementacja class Wykladowca { String imie; String nazwisko; String tytulNaukowy; } class Student { String imie; String nazwisko; String nrIndeksu; } class Sala { int numer; } class Zajecia { Date data; String przedmiot; Wykladowca prowadzacy; Student[] studenci; Sala sala; }
Sieć komputerowa Komputer 1 * * * Książka Strony AGREGACJA KOMPOZYCJA Agregacja i kompozycja • Agregacje oraz kompozycje służą do przedstawiania zależności typu część – całość.
Sieć Komputerowa domena Komputer nrIP * * Implementacja • Agregacje i kompozycje implementujemy za pomocą kolekcji referencji do obiektów składowych. class Komputer { InetAddress nrIP; } class Siec { String domena; Komputer[] spisKomputerow; }
Jarek GadomskiKuba Morkis KONIEC