Witajcie,
niedługo egzamin, chcę przerobić trochę zadanek z sieci.
Poniżej załączam treść zadania i moje rozwiązanie.
Czy jest ono prawidłowe?
Proszę o wystawienie oceny i uwagi :-)
Nie ogarniam czemu kibice dziedziczą z zawodów a zawodnik z zawodników.
Dzięki Shalom, na Ciebie liczyłem, że pomożesz :-)
W założeniu chciałem, że kibice są częścią zawodów a zawodnik jest "podgrupą" zawodników [zawodnik jest częściowym elementem zawodników]....
Źle myślę?
IMHO treść zadania jest trochę durna.
To taki egzamin z podstaw podstaw więc i zadania takie szkolne. No ale przedmiot trzeba zaliczyć...
bbxb napisał(a):
Dzięki Shalom, na Ciebie liczyłem, że pomożesz :-)
W założeniu chciałem, że kibice są częścią zawodów a zawodnik jest "podgrupą" zawodników [zawodnik jest częściowym elementem zawodników]....
Źle myślę?
Skoro kibice są częścią zawodów, to po co tam dziedziczenie? A klasa "zawodnicy" jest bez sensu, wystarczy drużyna jako agregacja zawodników.
BTW, tak wygląda Twoje cudo pod FF:
Po cholerę ta przezroczystość?
Cześć,
poprawiłem zgodnie z Waszymi sugestiami i załączam nowy plik do postu. Zobaczcie czy tak może być i czy moje rozwiązanie spełnia warunki zadania??
Za tą przeźroczystość przepraszam, używam nowego programu [ArgoUML] i nie ogarniam tu tych opcji...
Dziękuję i pozdrawiam!
Co to są "konkurencje"? Bo jeśli to jest tylko lista konkurencji to możesz mieć agregację konkurencji po prostu a nie jakąś dodatkową klasę.
Co to są "zawodnicy"? jw
Nie widzę sensu wiązania sędziego i zawodnika.
No niby tak ale w takim razie jak tu wykonać warunki zadania?
W treści zadania mam podane co ma się znaleźć na diagramie.
Konkurencje i zawodnicy raczej trzeba traktowac jako liste konkurencji i liste zawodnikow.
Masz napisane że slowa mogą być nazwami atrybutów. Jak dla mnie agregacja pomiędzy konkurencją a zawodami i "konkurencje" jako nazwa atrybutu w klasie Zawody jest jak najbardziej ok.
Ja bym tam raczej kompozycje zrobił niż agregację, czy zawody mogą istnieć jeśli nie ma konkurencji, a konkurencja jeśli nie ma zawodów?
Idąc logiką, czy w zawodach może wziąć udział tylko jedna drużyna? Czy nie lepiej zacząć od min. dwóch?
Sam diagram można uprościć (co było napisane), wystarczy, że drużyna będzie miała
zawodnik : lista, to samo z zawody:
konkurencje : lista
Mały brak ciągłości językowej mnie bije po oczach (chyba tylko mnie :<), jak klasy i akcje nazywasz po polsku, to czemu jest newOperation po angielsku?
Raz tu na forum widziałem coś takiego:
virtual void set_zdrowie(int);
virtual int get_zasieg();
virtual int get_sila();
void set_pozycja(int n);
virtual void przesun(int ile) ;
virtual void set_start();
Ten brak ciągłości językowej to przypadek, new operation dodało mi się przypadkowo :-)
Mam ostatnią już prośbę. Poniżej załączam zadanie nr 2 wraz z moim rozwiązaniem. Jak poprzednio proszę o uwagi i poprawki :-)
Dzięki!!
Id to słaby pomysł na klasę. Podobnie jak klienci i pracownicy. Bezsensowne jest dziedziczenie klienta z klientów, jak i pracownika z pracowników.
To jak postąpić z klient/klienci i pracownik/pracownicy?
W poprzednim zadaniu też były nazwy podane w liczbie mnogiej i nie bardzo wiem jak to ugryźć.
Id może być atrybutem w klasie egzemplarz??
Znowu brakuje mi kompozycji przy katalog tytułów, czy katalog może istnieć jeśli nie ma w nim żadnego tytułu? Jest nawet sugestia, że powinny być użyte wszystkie rodzaje relacji, to z podstawowych brakuje jeszcze implementacji. Pracownik dziedziczy od pracowników, a klient od klientów? Jak to uzasadniasz? Klasa katalog_tytułów ma obiekty tytuł i egzemplarz? To chyba nie ma sensu, nie rezerwuje się tytułu tylko egzemplarz tytułu, rezerwując książkę nie rezerwuję wszystkich książek o podanym tytule przecież. Myślę, że egzemplarz mógłby dziedziczyć od tytułu, a katalog zawierać listę tytułów. Katalog agreguje id, ale tytuł i egzemplarz już nie? Umiesz to uzasadnić?
Nie wiem gdzie mógłbym wcisnąć tą implementację... :-(
Z tym pracownikiem/pracownikami chodzi mi o to, że pracownik jest elementem pracowników i zawiera ich cechy...
A teraz? [poprawki w załączniku].
Też nie mam pojęcia co z implementacją w tym przypadku, można z pracowników zrobić interface, ale to bez sensu robić interface dla tylko jednej klasy. Dla mnie większość OK, pytanie tylko ja uzasadnisz swój design, bo jesteś wyraźnie o to pytany w zadaniu.
Dzięki.
A nie brakuje tam zwykłej asocjacji pomiędzy klienci a pracownicy?