Pierwsze zadanie z fascynującego przedmiotu “Laboratorium Programowania Obiektowego i współbieżnego brzmi tak:”
Napisz w Javie hierarchię klas opisujących pracowników pewnej firmy komputerowej. Wyraź w tej hierarchii następujące fakty:
*
wszyscy pracownicy są ludźmi,
*
każdy kierownik projektu, projektant, analityk, tester, programista, a nawet sam prezes jest pracownikiem,
*
każdy kierownik projektu oraz prezes jest kierownikiem.
Tak zaprojektuj klasy by:
*
każdy człowiek znał swoje imię i nazwisko,
*
każdy pracownik znał swoje stanowisko (tekst) i swego szefa (oczywiście prezes nie ma szefa, szefem kierownika projektu jest prezes, szefami pozostałych pracowników są kierownicy projektów),
*
każdy pracownik, prócz prezesa, brał udział w dokładnie jednym projekcie, i oczywiście znał ten projekt,
*
każdy kierownik projektu znał członków swojego projektu,
*
każdy projektant znał swoją dziedzinę,
*
prezes był tylko jeden.
Stwórz też klasy opisujące:
*
projekt (zna swoją nazwę),
*
dziedzinę (wyznaczającą zakres kompetencji projektanta), dziedzina zna swój słowny opis.
Każdy z ludzi musi umieć podać swój opis tekstowy (komunikat toString). Opis ma zawierać wszystkie informacje, które zna dany człowiek (np. nazwę projektu, czy pełny opis szefa). Napisz fragment programu w Javie, który utworzy kilka (ok. 10) obiektów reprezentujących ludzi zatrudnionych w przykładowej firmie na różnych stanowiskach, umieści ich w kolekcji, a następnie wypisze opis każdego z nich. Zadbaj o to, by tworzenie nowych obiektów było jak najprostsze. Całość zaprojektuj w postaci pakietu i zapisz jako jeden plik jar (tu mogą się przydać informacje z przedmiotu HTML i Java).
Wskazówki:
*
przy implementacji prezesa posłuż się statyczną metodą produkującą, w celu zrealizowania wzorca Singleton,
*
rozwiązanie ma obrazować statyczny stan firmy, nie interesują nas zmiany (dynamiczne aspekty stanu firmy, np. to że ktoś awansuje),
*
zadanie jest proste.
A oto rozwiązanie:
Zadanie 1