Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
1
Asocjacja,Kompozycja,Agregacja
Autorzy prezentacji: Mirosław Karaś Adam Grzybkowski
2
Asocjacja Grupa powiązań posiadających wspólną semantykę i strukturę
Oznaczenia klas w UML mogą być połączone liniami oznaczającymi asocjacje, czyli wiązanie między obiektami tych klas
3
Agregacja Agregacja jest szczególnym przypadkiem asocjacji wyrażającym zależność część-całość. Istnienie części jest nie zależne od całości i może być ona skojarzona z wieloma całościami.
4
Jest to szczególny przypadek asocjacji wyrażający zależność
Agregacja Auto marka model silnik Silnik pojemność moc momentObr * * Jest to szczególny przypadek asocjacji wyrażający zależność część-całość
5
Agregacja – implementacja Java cz. 1
public class Samochod { static Vector samochody = new Vector(); String marka; String model; Silnik silnik; public Samochod(String mar, String mod, Silnik sil){ marka=mar; model=mod; silnik=sil; samochody.add(this); }
6
Agregacja – implementacja Java cz. 2
public class Silnik { static Vector silniki = new Vector(); int pojemnosc; int moc; int momentObr; Samochod sam; Public Silnik (int poj, int hp, int moment, Samochod sam).{ pojemnosc = poj; moc = hp; momentObr = moment; silniki.add(this); this.sam = sam; }
7
Kompozycja Kompozycja jest szczególnym rodzajem agregacji. Kompozycja oznacza, że cykl życiowy składowej zawiera się w cyklu życiowym całości, oraz że składowa nie może być współdzielona. Nawigacja odbywa się w kierunku od całości do części. Część jest zależna od całości i nie może bez niej istnieć.
8
Kompozycja Auto marka model silnik Silnik pojemność moc momentObr 1 *
Jest to specyficzny przypadek agregacji, gdzie część nie może być odseparowana od całości
9
Kompozycja – implementacja Java cz. 1
public class Samochod { static Vector samochody = new Vector(); String marka; String model; Silnik silnik; public Samochod(String mar, String mod, Silnik sil){ marka=mar; model=mod; silnik=sil; samochody.add(this); }
10
Kompozycja – implementacja Java cz. 2
public class Silnik { static Vector silniki = new Vector(); int pojemnosc; int moc; int momentObr; Samochod samochod; Public Silnik (int poj, int hp, int moment, Samochod sam){ pojemnosc = poj; moc = hp; momentObr = moment; samochod = sam; silniki.add(this); }
11
) Asocjacja kwalifikowana (przy pomocy tablic asocjacyjnych)
Kwalifikator jest atrybutem asocjacji (lub zestawem atrybutów), którego wartości służą do podziału zbioru obiektów definiowanych przez klasę znajdującą się na jednym z końców tej asocjacji innymi słowy mając na jednym końcu obiekt asocjacji odpowiada on na pytanie jak znaleźć obiekt z drugiego końca. Tablice asocjacyjne są to tablice w których zamiast indeksów liczbowych używa się identyfikatorów znakowych(kluczy)
12
Asocjacja kwalifikowana (przy pomocy tablic asocjacyjnych)
Bank Osoba nr konta 0..1 1..* 0..1 Bank nr konta kwalifikator asocjacji 1 Osoba Bank * * Bank Osoba nr konta * Bank/Osoba 0..1 nr konta Osoba
13
Asocjacja kwalifikowana – implementacja Java z użyciem kolekcji HashMap
public class Bank{ HashMap konta = new HashMap(); String nazwa; public Bank(String n){ nazwa = n; } public void zalozKonto(int numerKonta, Osoba o){ if(konta.containsKey(numerKonta)) System.out.println(“Juz jest taki numer konta”); else { konta.put(numerKonta, o); Osoba.bankiOsoby.add(this); public void usunKonto(int numerKonta, Osoba o){ if(konta.containsKey(numerKonta)){ konta.remove(numerKonta); Osoba.bankiOsoby.removeElement(this); return; public class Osoba{ Vector bankiOsoby = new Vector(); String imie; String nazwisko; public Osoba(String i, String n){ imie = i; nazwisko = n;
14
Asocjacja n-arna Asocjacja n-arna to asocjacja, której wystąpienia łączą n obiektów, będących instancjami co najwyżej n klas. Dana klasa może pojawić się na więcej niż jednej pozycji w asocjacji.
15
Asocjacja n-arna K1 K3 K1 K3 K2 K2 asocjacja asocjacja 3-arna 4-arna
nazwa asocjacji K3 K2 K2
16
Asocjacja n-arna Profesor imie nazwisko Student imie nazwisko
nrIndeksu 1..* 1 1 Cwiczenie nazwaPrzedmiotu data
17
Asocjacja n-arna – implementacja Java cz. 1
public class Profesor{ static Vector profesorzy = new Vector(); String imie; String nazwisko; public Vector prowadzoneCwiczenia; public Profesor(String im, String nazw){ imie = im; nazwisko=nazw; prowadzoneCwiczenia = new Vector(); profesorzy.add(this); } public class Student{ static Vector studenci = new Vector(); int numerIndeksu; public Vector odbywaneCwiczenia; public Student(String im, String nazw, int numer){ nazwisko = nazw; numerIndeksu = numer; odbywaneCwiczenia = new Vector(); studenci.add(this);
18
Asocjacja n-arna – implementacja Java cz. 2
public class Cwiczenie{ String nazwaPrzedmiotu; String data; public Profesor profesor; public Vector studenciNaCwiczeniu; public Cwiczenie(Profesor prof, Vector stud, String nazwa, String dat){ nazwaPrzedmiotu = nazwa; data = dat; prof.prowadzoneCwiczenia.addElement(this); Iterator it = stud.iterator(); Student s; while(it.hasNext()){ s=(Student) it.next(); s.odbywaneCwiczenia.addElement(this); }
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.