Implementacja oraz istniejące problemy FATCA i standardu CRS OECD
Implementacja asocjacji
description
Transcript of Implementacja asocjacji
Implementacja asocjacji
Jarek GadomskiKuba 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 Osobapracuje_dla
1..*1
ImplementacjaImplementacja 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
Uprawnieniadostęp
dostępny dla
*
*
Pracowniknazwiskopeseladres
Firma
nazwaadres
zarobekstanowisko
zatrudnia
11..*
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 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;
}
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 indeksu1
1..* kwalifikatorasocjacji
Uczelnia1..*1
Student
nr indeksu
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
*
*
*
PrzedmiotData
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
DataPrzedmiot
sprawdzObecnosc()
1
*
* * 1*
Implementacjaclass 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;
}
Student Sala
Wykładowca
Zajęcia*
*
*
PrzedmiotData
Student Sala
Wykładowca
Zajęcia
DataPrzedmiot
sprawdzObecnosc()
1
*
* * 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