plik


ÿþ1. Asocjacja Film Aktor Aktor Film * * tytuB Imie_nazwisko Nie wystpuj bezpo[rednio. Mog byd zaimplementowane za pomoc: ·ð identyfikatorów, np. liczbowe [116] Do ka|dej klasy dodawany atrybut typu int jednoznacznie identyfikujcy dany obiekt. Info. o powizaniach przechowujemy pamitajc id-ry. Dla asocjacji 2-kierunkowych pamitamy pary id-rów. Film: /Id = 1 Aktor=[3,4]/ Aktor: /Id = 3, Film=[1]/ ·ð natywnych referencji Javy [122] Ref-cja wskazuj bezpo[rednio na obiekt, mamy natychmiastowy dostp do niego. W zale|no[ci od liczno[ci (1 lub *) stosujemy: pojedyncz referencje (1) lub kontener (*) (np. ArrayList) umieszczone w odpowiedniej z powizanych klas. 2. Asocjacja skierowana [128] Analogicznie jak asocjacja 2-kierunkowa tylko powizania pamitamy dla jednej z klas. Wtpliwe jest jej zastosowanie biznesowe. Film Aktor * tytuB Imie_nazwisko 3. Asocjacja rekurencyjna [129] W klasie umieszczane dwa kontenery po jednym dla ka|dej z ról, przechowujce informacje informacje z punktu widzenia ka|dej z ról (UML: Obowizkowe nazwy ról.) rodzic Aktor 0..2 Imie_Nazwisko dziecko * public class aktor { String Imie_Nazwisko; private ArrayList<Aktor> rodzic = new& () private ArrayList<Aktor> dziecko = new& () & } 4. Asocjacja z atrybutem [130] Inaczej  Klasa asocjacji . Jedn konstrukcj UML  asocjacje z atrybutem zamieniamy na inn  asocjacje z klas po[redniczc. Otrzymali[my 2 asocjacje które implementujemy na jeden ze znanych sposobów. Film Aktor Film Aktor * * tytuB Imie_nazwisko Wynagr Po zamianie: Film FilmAktor Aktor Film Aktor Film Aktor 1 y x 1 tytuB Wynagr Imie_naz wisko 5. Asocjacja kwalifikowana [131] Aktor Film Film Aktor Tytul 1 Imie_nazwisko * Dostp do obiektu docelowego odbywa si na podstawie unikatowego id-ra. Implementacja prosta: ·ð Realizujemy jak prost asocjacje, ·ð dodajemy metod która zwraca obiekt na podstawie kwalifikatora. Implementacja z mapujcym kontenerem: ·ð Zamiast stand. kontenera (np. ArrayList) stosujemy kontener mapujcy np. TreeMap /TreeMap<String,Film>FilmKwalif/ gdzie kluczem jest kwalifikator, a warto[ci referencja do obiektu docelowego, ·ð Informacja zwrotna przechowywana w dotychczasowy sposób. 6. Asocjacja n-arna [134] Jedn konstrukcj UML  asocjacje n-arn zamieniamy na inn  n asocjacji binarnych oraz klas po[redniczc. Nowe asocjacje Impl-my na jeden ze znanych sposobów. Wykonuje Od Do Wynagr Projekt Pracownik * * tytuB * FilmAktor Wynagr Po zamianie: Wykonuje Od Projekt Pracownik Do * * tytuB * * Wynagr * * FilmAktor Wynagr 7. Agregacja [41, 135] Grupa Pracownik tytuB * Imie_nazwisko Implementujemy tak samo jak zwykB asocjacje. 8. Kompozycja [135] Budynek Pokój * numer adres Cz[d  asocjacyjna Implementujemy na dotychczasowych zasadach. Do zrealizowania: ·ð blokowanie samodzielnego tworzenia cz[ci (konstuktor Cz[ci  private, metoda klasowa Utworz), ·ð zakazane wspóBdzielenie cz[ci (atrybut klasowy /Kontener/ przechow. info. o wsz. cz[ciach powizanych z caBo[ciami), ·ð usuwanie cz[ci przy usuwaniu caBo[ci (usunicie wszystkich cz[ci z ekstensji i wszystkich powizao na usuwane cz[ci). Mo|na zmodyfikowad realizacje asocjacji lub skorzystad z klas wewntrznych. 9. Dziedziczenie Disjoint [42, 155] Osoba Imie_nazwisk Pracownik Student Emeryt badania index Wystpuj bezpo[rednio w Java. SkBadnia dla dziedziczenia w Javie u|ywa si sBowa extends. Zgodnie z zasadami hermetyzacji ukrywamy z pomoc private wszystkie elementy których programista nie potrzebuje do pracy. 10. Overlapping [160] Osoba Imie_nazwisk {overlapping} Pracownik Student Emeryt badania index Nie wystpuj bezpo[rednio w Java. Obej[cie: ·ð Grupowanie  zastpienie caBej hierarchii dziedziczenia jedn klas. [160] 1. Wszystkie inwarianty Osoba Imie_nazwisk umieszczamy w jednej klasie. Badania [0..1] 2. Dodajemy deskryminator index [0..1] informujcy o rodzaju obiektu Typ {pr, st, em} (typ wyliczen. EnumSet). ·ð Wykorzystanie agregacji i kompozycji. Zamiast Osoba dziedziczenia Imie_nazwisk wstawiamy 1 kompozycje, 0..1 0..1 0..1 gdzie nadklasa Pracownik Student Emeryt staje si caBo[ci, badania index index a podklasy cz[ciami. Brak bezpo[redniego dostpu do metod nadklasy uzupeBniamy metodami w Klasie- Cz[ci propagujce zapytanie do Klasy-CaBo[ci. Przy impl-cji kompozycji Objekty-Cz[ci nie mog byd ukryte, musimy zachowad do nich dostp. ·ð Rozwizania Bczce powy|sze metody. 11. Klasa abstrakcyjna [43] Klasa która nie mo|e Osoba {abstract} mied bezpo[rednich Imie_nazwisk wystpieo (nie mog getDochody() istnied obiekty nale|ce do tej klasy). Mo|e zawierad metody konkretne i abstrakcyjne. Klas abstrakcyjn mo|emy stworzyd za pomoc kwalifikatora abstract. 12. Metoda abstrakcyjna [44] Osoba {abstract} Metoda która posiada Imie_nazwisk tylko deklaracje, ale nie getDochody() {abstract} posiada funkcji (ciaBa). W Java oznaczana jest za pomoc kwalifikatora abstract i mo|e byd deklarowana tylko w klasie Abstrakcyjnej. Je|eli wszystkie metody klasy s abstrakcyjne, zaleca si, aby tak klas zadeklarowad jako Interface. Metoda abstrakcyjna nie mo|e byd klasow static. 13. Atrybut Prosty [92] Wystpuj bezpo[rednio w Java. SkBadnia dla atrybutu w Javie: private float cena; 14. Atrybut ZBo|ony [93] Opisywany za pomoc dedykowanej klasy, która mo|e byd dostarczana przez Jav jako biblioteka wewntrzn lub stworzon przez u|ytkownika. W klasie biznesowej przechowujemy referencje do jego wystpienia, a nie warto[d. Wic mo|na wspóBdzielid z innymi obiektami. SkBadnia dla ZBo|onego atrybutu w Javie identyczna jak dla Prostego, ró|nica jest w typie: private Date dataZakupu; Atrybut Wymagany/ Opcjonalny [93] Pracownik Badania [0..1] Mo|e byd prosty lub zBo|ony. ·ð Atrybut Prosty  przechowuje zawsze jak[ warto[d (Wymagany). {eby przechowywad null (Opcjonalny) mo|na zaimplementowad jako klas przechowujc prost warto[d. ·ð Atrybut ZBo|ony  przechowuje referencj do obiektu  bdc jego warto[ci . Mo|liwa warto[d null (Opcjonalny). Dla Wymagany  sprawdzad czy nie ma null. 15. Atrybut Pojedynczy [94] Jeden atrybut przechowuje jedna Pracownik Pensja warto[d. 16. Atrybut Powtarzalny [94] Implementujemy w jakim[ Pracownik Adres [1..*] kontenerze lub zwykBej tablicy. Kontener jest preferowany je|eli nie znamy ilo[ci elementów. Rodzaj kontenera zale|y od sposobu pracy z atrybutem. Mo|liwe przechowywanie w postaci Stringu, oddzielajc poszczególne Pracownik atrybuty przecinkiem  Adresy niezalecane. 17. Atrybut Klasowy [94] Pracownik Realizacja zale|y od podej[cia do MinPensja ekstensji: ·ð W ramach tej samej klasy  stosujemy atrybuty klasowe w tej samej klasie z static. ·ð W ramach klasy dodatkowej  Impel-jemy w klasie dodatkowej bez static. 18. Atrybut Wyliczalny [95] Symulujemy w oparciu o metody. Pracownik Dostp do atrybutów i tak Data urodz. / Wiek odbywa si za pomoc setterów i getterów. Specjalne traktowanie atrybutu implementowane jest w ciele metody udostpniajcej/zmieniajcej jej warto[d. 19. Atrybut Unikalny Pracownik ·ð Konstruktor private PESEL {unique} ·ð metoda utwórz(PESEL) sprawdzajca czy w ekstensji nie ma ju| osoby z identycznym PESEL-em. 20. Metoda obiektowa [96] Ma tak sam semantyk Pracownik jak w obiektowo[ci. Ustal pensje (kwota) Operuj na obiekcie na najstarszego () rzecz którego zostaBa wywoBana. Ma dostp do wszystkich jego elementów: atrybutów i innych metod. W ciele metody mo|emy u|ywad sBowa kluczowego this, które jest referencj na obiekt na rzecz którego zostaBa wywoBana metoda. 21. Metoda klasowa [96] Nie wystpuj w Javie. Pracownik Cz[ciowo jest realizowana Znajdz najstarszego () przez metod static, poniewa| ekstensja nie jest realizowana bezpo[rednio w Javie metoda statyczna nie ma do niej automatycznego dostpu. W zale|no[ci od sposobu realizacji ekstensji: ·ð Ekstensja w tej samej klasie  metoda static, ma dostp do kontenera z ekstensj klasy ·ð Ekstensja jako klasa dodatkowa  metoda w klasie dodatkowej dodatkowej bez static. 22. Asocjacja z liczno[ci X..* [???] 1. Zamiast kontenera zwykB tablic z zadan ilo[ci  komórek do przechowywania referencji (ID)  wtedy nie mamy fizycznej mo|liwo[ci przechowywad wicej ni| X referencji (ID) w ramach asocjacji. 2. U|ywamy za pomoc asocjacji *  * a metodzie tworzcej nowe poBczenie sprawdzamy czy ilo[d ju| istniejcych poBczeo nie równa si maksymalnej liczno[ci. W ró|nych sytuacjach biznesowych mo|e byd wymagane stworzenie dla jednej asocjacji w ramach jednej metody poBczenie z X obiektami jednocze[nie: klient.utworz(imie, matka, ojciec). 23. Dziedziczenie incomplete [167] Osoba Raczej jest Imie_nazwisk ignorowane. {incompelte} Jest impl-wane jak zwykBe Pracownik Student Emeryt dziedziczenie. badania index index Jedynie trzeba pamitad |e ze wzgldu na dalsze dziedziczenie nie mo|emy u|ywad final  nie pozwala na dziedziczenie z takiej klasy. 24. Dziedziczenie wielokrotne [47, 168] Osoba Imie_nazwisk Pracownik Student Emeryt Nie wystpuje badania index index w Java. Implementacja Pracujcy strudent taka jak dla Badania [0..1] overlapping-u: ·ð Grupowanie  Zostawiamy Osoba jedn hierarchie dziedziczenia  Imie_nazwisk Badania [0..1] reszt grup-my w nadklasie. [160] index [0..1] ·ð Grupowanie i wykorzystanie Typ {pr, st, em} kompozycji lub agregacji. Zostawiamy jedn hierarchie dziedziczenia  reszt impl-jemy za pomoc komp. lub agreg. ·ð Wykorzystanie interface. Klasa mo|e Impel-wad dowoln ilo[d interface  co daje mo|liwo[d definiowania metod, atrybutów (tylko w postaci metod: setterów/ getterów). Wady: dot. specyficznych metod i nie pomaga w implementacji  normalnych metod, w przypadku modyfikacji musimy rcznie poprawiad ka|d impl-cje. Wielokrotn impl-cje mo|na obej[d za pomoc wzorców projektowych  delegacji lub polecenia  impl-ujc tak sam metod w ró|nych klasach, zamiast powielad kod bezpo[rednio w jej ciele, delegujemy jej wykonanie (z wntrza w wielu klasach) do jakiego[ (tego samego) obiektu. 25. Dziedziczenie wieloaspektowe [49,173] Kobieta pBed NazwPanien Osoba Imie_nazwisk M|czyzna zajcie Slu|baWojsk Pracownik Student Emeryt badania index index Nie wystpuj w |adnym jzyku. ·ð Grupowanie  Zostawiamy jedn hierarchie dziedziczenia  reszt grupujemy w nadklasie i dodajemy dyskryminator. Lub grupujemy caBo[d w nadklasie. ·ð Grupowanie i wykorzystanie kompozycji lub agregacji. Zostawiamy jedn hierarchie dziedziczenia  reszt impl-jemy za pomoc kompozycji lub agregacji. 26. Dziedziczenie dynamiczne [50, 176] Osoba Imie_nazwisk «dynamic» Pracownik Student Emeryt badania index index ·ð Grupowanie  caBo[d grupujemy w nadklasie i dodajemy dyskryminator. ·ð Agregacja/kompozycja z XOR  podobna implementacja jak dla overlapping-u, dodatkowo metoda uBatwiajca  zmian klas ·ð Sprytne kopiowanie klas  stary obiekt zastpowany nowym. W ka|dej z klas tworzymy konstruktorzy otrzymujce jako parametr referencje do obiektu nadklasy, z niego kopiujemy wspólne atr. do nowego obiektu. Problem z update referencji  do starego obiektu. Równie| problem stanowi referencje  do których nie ma w nowej klasie. 27. Ograniczenie subset [185] nale|y do Pracownik Brygada {subset} kieruje Powizania w ramach podstawowej asocjacji  skBada si implementujemy standardowo. A w metodzie tworzcej powizanie z ograniczeniem,  kieruje sprawdzamy czy istnieje podstawowe powizanie w ramach  nadrzdnej asocjacji. 28. Ograniczenie ordered [189] {ordered} {ordered} Pracownik Brygada nale|y do kieruje Do przechow. elementów stosujemy odpowiedni kontener gwarantujcy kolejno[d. 29. Ograniczenia history, bag [189] {bag} Pracownik Brygada nale|y do Imie_nazwisko Data od Data do {bag}  pozwala na przechowywanie wicej ni| jednego powizania z tymi samymi obiektami. Zwykle to ograniczenie pojawia si dla asocjacji z atrybutem, któr implementujemy przez klas po[redniczca. Ew. stosujemy kontener pozwalajcy pamitad wiele razy t sam ref. np. vector. {history}  postpowanie identyczne, tylko |e samo history podkre[la aspekt czasowy informacji. 30. Ograniczenie XOR [190] zleceniodawca Firma zleceniobiorca Pracownik {XOR} Inst_rzdowa pracownik pracodawca Metoda dodajca powizanie w grupie asocjacji objtych XOR sprawdza czy nie wystpuje ju| powizanie w tej grupie. SzczegóBowo: ·ð Sprawdzamy czy dodawana rola jest objta XOR. ·ð Sprawdzamy czy dla ról objtych ograniczeniem istnieje ju| powizanie, je|eli tak  wyjtek. ·ð Stosujemy zwykB metod tworzc powizanie pomidzy obiektami.

Wyszukiwarka

Podobne podstrony:
Sciaga pl Podział drukarek komputerowych
dydaktyka egzamin sciaga
Ściąganie drążka wyciągu górnego do klatki na maszynie
ściąga kol 1 stata
sciaga napedy
SKROTY
ściaga PR
DMK ÅšciÄ…ga na egzamin
Podstawy Systemów Okrętowych Ściaga Pytaniami
ÅšCIÄ„GA
ściaga analiza

więcej podobnych podstron