Lab obiektowy i współbieżny zadanie 1

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

Leave a Reply