8331764256

8331764256



Implementacja atrybutów (4)


Jeśli atrybut jest wielowartościowy, to dane przez niego reprezentowane są kolekcją. A zatem klasa Zamówienie (patrz slajd 8) byłaby kolekcją obiektów Pozycja zamówienia. Ponieważ krotność ta jest uporządkowana, to i kolekcja Zamówienie musi być zbiorem uporządkowanym. Wielowartościowe cechy wymagają innego typu interfejsu niż cechy jednowartościowe (np. w Javie): class Zamówienie {

privatc Zbiór pozycjeZamowienia = new ZbiorUporzadkowanyO; public Zbiór pobierzPozycjeZamowienia() {

return Kolekcje.ZbiorNiemodyfikowalny(pozycjeZamowienia); } public void dodaj PozycjeZamowienia (PozycjaZamowienia arg) { pozycjeZamowienia.dodaj (arg);} public void usunPozycjeZamowienia (PozycjaZamowienia arg) { pozycjeZamowienia.usun(arg);}

Projektowanie systemów informatycznych, wykład 2    14


W większości wypadków cechom wielowartościowym nie nadaje się wartości za pomocą operatora przypisania, lecz używa się w tym celu metod dodających i usuwających wartości. Kontrola nad cechą pozycjeZamowienia wymaga, aby w zamówieniu można było sprawdzić przynależność do tej kolekcji. W efekcie nie powinno być możliwe uzyskiwanie bezpośredniego dostępu do samej kolekcji. W tym wypadku użyto zabezpieczenia tej kolekcji w postaci zewnętrznego interfejsu tylko do odczytu. Można też utworzyć nie aktualizowany iterator lub utworzyć kopię. Można zezwolić klientom na modyfikowanie obiektów składowych, ale nie powinni oni móc bezpośrednio zmieniać samej kolekcji.

Jeśli w kolekcji nie ma ustalonego porządku, to aby zachować ścisłość, nie powinna ona mieć znaczącej kolejności i powinna być zaimplementowana jako zwykły zbiór. Jednak zwykle implementuje się nieuporządkowane atrybuty jako listy. Jeżeli potrafimy określić liczbę elementów kolekcji wtedy warto użyć tablicy o stałym rozmiarze (zwykle działają szybciej niż struktury danych o zmiennym rozmiarze).

Ponieważ wielowartościowe atrybuty implikują stosowanie kolekcji, zwykle nie umieszcza się klas kolekcji na diagramie klas. Przedstawia się je jedynie na diagramach implementacji bardzo niskiego poziomu.

Przykłady te uwydatniają fakt, że nie ma jednoznacznej zależności między UML-em a kodem, chociaż istnieje pewne podobieństwo. Jednak konwencje przyjęte przez zespół projektantów pomogą zbliżyć się do uzyskania takiej zależności.

Niezależnie od tego, czy cecha jest zaimplementowana jako pole, czy jako wartość obliczana, reprezentuje ona coś, co obiekt może zawsze podać. Nie należy używać cechy do modelowania przechodniej relacji, takiej jak przekazanie obiektu jako parametr podczas wykonania metody, używanego tylko w obrębie tej interakcji.

14



Wyszukiwarka

Podobne podstrony:
26 Wojciech Adamczyk Jeśli medium jest wiadomością, to implikacje tej nadawczej transformacji są
Image473 przedstawiono na rys. 4.589a. Jeśli przełącznik P jest w pozycji 7, to układ działa tak, ja
Zdj 25252525EAcie1021 jeśli człowiek jest z natury    to proces socjalizacji jest cią
sr2 jeśli koło jest wielkie, to w środku znajdzie się wysepka zielonej trawki. Koło grzybowe okala
Slajd5 [ www potrzebujegotowki pl ] Wzory Cramera Jeśli macierz A jest nieosobliwa to układ równań j
P3300242 Specyfika potęgowania Jeśli macierz A jest kwadratowa to aa2 jest iloczynem macierzy a*a a
Slajd5 [ www potrzebujegotowki pl ] Wzory Cramera Jeśli macierz A jest nieosobliwa to układ równań j
Z. Rudnicki: MATLAB - KOMPENDIUM ubytkiem) krok. Jeśli krok jest równy 1 to można go pominąć w zapis
CCF20090213056 natomiast G jest fałszywe, co oznacza, że G nie może zostać udowodnione (jeśli syste
P3300248 pA = [1“-1] -6 •ans = f -5    -7 Jeśli macierz jest mnożona lub dzielona prz
479 2 479 Rozdział 5 3, (a) Jeśli macierz U- jest unitarna, to HltyUa^lHla. gdy*
519 2 519 Rozdział 11 3. Jeśli funkcja Q jest kwadratowa, to Q‘ jest liniowa. Jeśli X i ff wybrano z
360 V. Funkcje wielu zmiennych gdzie u.x + a.2 + ...+a.„=k jeśli zaś u jest funkcją x, y, ..., z, to
Obraz30 Jeśli nawierzchnia jest sucha, to samo hamowanie wydaje się być proste. Nie istnieje duże n
Specjalizacje półkul mózgowych (Lewa dominująca. Jeśli dominująca jest prawa, to relacje zachodzą

więcej podobnych podstron