Wpis z mikrobloga

Mirosławy, kto ogarnia UML? Słuchajcie, sprawa jest taka: poprawiam diagram klas, który #!$%@?łem bo nie bardzo rozumiałem co to znaczy ze "diagram klas nie modeluje uprawnień", czyli miałem przykładowo klasę

Raport
z metodą

generuj()
i klasę

Pracownik
. Ja źle myślałem, ze skoro zakładam, ze to pracownik będzie generować raporty, to mam te klasy na diagramie powiązać - okazało się, ze nie, nie mam, no chyba że raport zawierałby

idGenerującego
czy podobne bezpośrednie powiązanie z klasą

Pracownik
. Więc poprzerabiałem już co trzeba, ale i tak utknąłem w jednym miejscu.

Mianowicie mam klasę

PracownikMagazynu
, klasę

Towar
oraz klasę

DokumentMagazynowy
. Klasa

Towar
ma metodę

umiescWMagazynie()
,

PracownikMagazynu
ma swoje id, natomiast

DokumentMagazynowy
, który miałby być tworzony za każdym razem kiedy pracownik umieści coś w magazynie, ma pola

idTowaru
i

idPracownika
. Teraz pytanie, biorąc pod uwagę to, co napisałem akapit wcześniej, czy mogę zrobić asocjację między

PracownikMagazynu
i

Towar
i jako klasę asocjacji ustawić

DokumentMagazynowy
, czy z racji tego że

Towar
i

PracownikMagazynu
nie mają pól które jakoś by się ze sobą wiązały mogę zrobić co najwyżej asocjację między

DokumentMagazynowy
i

Towar
oraz

DokumentMagazynowy
i

PracownikMagazynu
? #uml #programowanie
  • 11
@Marmite: W ogóle to dziwnie to modelujesz. Towar ma metodę dodajDoMagazynu()? Że niby co, towar dodaje coś do magazynu? Raczej pracownik dodaje towary do magazynu, więc powinna być metoda Pracownik.dodajDoMagazynu(towar), nie? I tak dalej. W programowaniu zorientowanym obiektowo chodzi chyba o to, żeby modelować świat rzeczywisty. Przynajmniej przeglądajDokumenty() dałeś dobrze :P
@Flood: No właśnie chodzi o to, że nie. Dla mnie też tak, jak Ty to opisałeś jest bardziej logiczne, ale z moich zajęć na ten temat oraz z korespondencji z prowadzącą, wynika, że to towar powinien mieć metodę umieszczającą go w magazynie.
Ja źle myślałem, ze skoro zakładam, ze to pracownik będzie generować raporty, to mam te klasy na diagramie powiązać - okazało się, ze nie, nie mam, no chyba że raport zawierałby idGenerującego czy podobne bezpośrednie powiązanie z klasą Pracownik


@Marmite: Przecież to jest normalna relacja <>, co niby w tym było złego?

Edit: a właściwie <>