Dynamiczne ładowanie klas

0

Więc muszę napisać grę w Javie jako projekt. Jedno z poleceń:
Zachowanie jednostek powinno być zdefiniowane w klasach które można dynamicznie dodawać do programu (na zasadzie plug-in'ów).

Jak coś takiego się robi? Oczywiście prowadzący nam nic nie wytłumaczył, nie powiedział gdzie to znaleźć, nic, a javy sie uczę od niedawna.
Zacząłem już pisać program, ale nie chcę żeby w pewnym momencie okazało się że aby dodawać te pluginy muszę cały program zmienić i od nowa napisać.

Na razie mam klasę Unit która zawiera pola np. szybkosc, atak, zasieg itp itd, oraz metody do poruszania się, atakowania itp, każda jednostka sterowana z własnego wątku. I teraz po niej będą dziedziczyć klasy np. czołg, piechota itp itd (kilka rodzajów wbudowane na stałe). Jak zrobić coś takiego, że w pewnym folderze mam dodatkowe klasy z jednostkami (czy te pluginy, nie wiem nawet jaki rodzaj to ma być pliku) stworzonymi przez użytkownika, program wczyta wszystkie te klasy zaraz po uruchomieniu do listy dostępnych jednostek. Raczej nowe jednostki nie będą zawierały dodatkowych pól i funkcji, będą mieć ten sam interfejs co Unit.

Jak coś takiego najprościej zrobić i jak się to nazywa jeśli chciałbym na google coś znaleŹć?
Może zna ktoś fajnego tutka gdzie jest to dobrze opisane? (najlepiej po polsku ale angielskie też będzie)

0

Klasa jest ładowana przy pierwszym wykorzystaniu, a nie na starcie JVM. Zatem w najprostszym ujęciu każda klasa jest pluginiem. Prowadzącemu (ciekawe, że nie wie jak działa classloader, ale to temat na osobny artykuł) chodziło zapewne o wykorzystanie innego mechanizmu:
http://4programmers.net/Java/W%C5%82asne_us%C5%82ugi_w_JSE
Dzięki takiemu mechanizmowi otrzymujesz coś co można ładować bez zmieniania kodu programu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1