V dnešním cvičení se zaměříme na věci probrané na přednášce z pohledu duplicity kódu (dědičnost, abstraktní třídy, rozhraní apod.). Pokusíme se upravit zdrojový kód tak, aby se společné věci dědily. Kód si upravte podle svého uvážení, pokuste se využít Interface, abstract class apod.
Příklad objekty budeme chtít ukádat do nějakého kontejneru a pak k nim přistupovat, příkladem je ArrayList.
ArrayList<String> data = new ArrayList<String>(); data.add("jedna"); data.add("dva"); data.add("tri"); for (String i : data) { System.out.println(i); }
Vytvořte vhodně abstraktní třídu AbstractVisibleEntity, která bude obsahovat metodu draw(), ta bude spouštět abstraktní metodu protected abstract void drawInternal().
public final void draw(GraphicsContext gc) { gc.save(); drawInternal(gc); gc.restore(); }
Vytvořte rozhraní Simulable, které bude obsahovat metody void simulate(double timestep) a rozhraní Drawable, které bude obsahovat metodu draw(GraphicsContext gc).
Upravte vhodně zbytek tříd a zdrojových souborů.
Kam to lze až dopracovat je vidět zde