Witam,
Dziękuję za odpowiedź. Jeśli chodzi o pierwsze to po prostu chciałem zaznaczyć, że dla jednego badania moze byc wyslanych wiele skierowan (bo osoba moze nie zdążyć wykonac badania w podanym terminie) ale faktycznie z punktu widzenia programu interesuje mnie aktualnie wyslane lub też nie skierowanie. Historia jest potrzebna ale w osobnej funkcjonalnosci (czyli jak rozumiem osobna klasa / klasy) nie dla tej ktora opisalem.
Jesli chodzi o drugi to :
-
Jak opisac licznosc klas ?
w rzeczywistosci wiem, ze jedno badanie moze byc przypisane tylko jednej osobie ale dana osoba moze miec jednoczesnie kilka badan do wykonania oraz do jednego badania moge miec wiele skierowan.
W tym programie potrzebuje przeanalizowac statusy badan - czyli nie potrzebuje informacji o tym kto ile badan ma do wykonania i ile skierowan, bo iteruje po badaniach i interesuje mnie ostatnio wyslane skierowanie. Ale z kolei w drugim programie potrzebuje powiedzmy wylistowac wszystkie badania dla człowieka (z całą historią) i np. zobaczyc ze pan Lolek dostał 3 skierowania zanim raczył dostarczyć wynik badania. Czyli w dwóch programach mam zupełnie inne liczności i w ogóle jakby inne relacje.
-
Czy klasa asocjacyjna jest tutaj na miejscu?
W zasadzie wydawało mi się, że skierowanie nie może istnieć bez obiektu badania i powinienem podpiąć skierowanie jako element kompozycji badania a nie jako "opis" powiązania między badaniem a pracownikiem.
Jak mam zrozumieć kiedy klasy asocjacyjne należy stosować a kiedy nie?
Mój pomysł na implementację jest taki: (programuję w innym języku niż java na co dzień, więc wybaczcie błędy):
public class ListaBadan{
private ArrayList<Badanie> lista_badan;
public void dodajBadanie(Badanie badanie);
public void usunBadanie(???); //usuwanie albo po indeksie albo referencją do elementu
public void analizujWszystkieBad(){}
public void szukajBadaniaDoZrobienia(){}
}
public class Badanie{
private Pracownik czyje;
public Skierowanie getCurrentSkierowanie(){}
public boolean dostarczonoWynik(){}
public Date getTerminDostarczenia(){}
}
public class Skierowanie{
private Pracownik badany;
private Date data_wyslania;
public void wyslij(){}
public String pobierzDruk() {}
public boolean skierowanieOdebrano() {}
}
public class Pracownik{
private String imie_nazwisko;
public String getNazwisko();
public Kalendarz getKalendarz()
}
Bardzo będę wdzięczny za kolejne wskazówki.
Nie bardzo mam się kogo zapytać w moim otoczeniu.
Pozdr.