• Nie Znaleziono Wyników

Implementacja asocjacji

N/A
N/A
Protected

Academic year: 2021

Share "Implementacja asocjacji"

Copied!
15
0
0

Pełen tekst

(1)

Implementacja asocjacji

Jarek Gadomski

Kuba Morkis

(2)

Zagadnienia

• Asocjacja binarna

• Atrybuty i klasy asocjacji

• Asocjacja 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 pracuje_dla Osoba

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 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 adres 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 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;

}

(8)

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..* kwalifikator asocjacji

Uczelnia 1 1..*

Student

nr indeksu

(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;

(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

*

* * * 1

(12)

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;

Student Sala

Wykładowca

Zajęcia

*

*

*

Przedmiot Data

Student Sala

Wykładowca

Zajęcia Data

Przedmiot 1

*

* * * 1

(13)

Agregacja i kompozycja

• Agregacje oraz kompozycje służą do

przedstawiania zależności typu część – całość.

Sieć

komputerowa * * Komputer

AGREGACJA

Książka 1 * Strony

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 Morkis

KONIEC

Cytaty

Powiązane dokumenty

-Nazwisko:string <*---*> -Nazwa: string.

 Problem niefizycznej granicy kinematycznej rozwiązany przez cięcie w dozwolonej liczbie losowań par nukleonów oraz.

(N) W przypadku implementacji ekstensji klasy w ramach klasy zewnętrznej, odpowiedni kontener musi być oznaczony słowem static. (N) W przypadku implementacji ekstensji klasy w

obiektami; związek znaczeniowy między co najmniej dwoma klasyfikatorami, który określa połączenia między

Asocjacja kwalifikowana jest typem asocjacji, dzięki któremu uzyskujemy większą przejrzystość diagramu klas.. Zapobiega również

Ponieważ rozwiązanie oparte na sieci ART-1, w przypadku większej ilości danych poddanych klasyfikacji (ponad 100 tys.) wymagało zbyt dużej ilości pamięci zastosowanie go

Pierwsze trzy spotkania odbyły się w Warszawie: w 1988 roku poświęcone znaczeniu ekologii krajobrazu dla praktyki społecznej i gospodarczej, w 1989 roku badaniom obszarów

Nie można wykluczyć, że z aktywności podejmowanych on line na Serwisie edukacyjnym e-Swoi nie wyłonią się też aplikacje, lecz głównym celem jest wdrażanie do wczesnego,