cvičení 03

Apache Log4j, návrhový vzor Builder
Návrhový vzor Builder
V projektu cvičení 1 , cvičení 2, cvičení 3
- Pro třídu lab.Setting (lab.Config, lab.Setup) vytvořte "builder"
- Zajistěte, že instance lab.Setting (lab.Config, lab.Setup) je možné vytvářet pouze pomocí "builderu".
- Pro vytváření "builder-u" vytvořte statickou tovární metodu ve třídě lab.Setting (lab.Config, lab.Setup). Zajistěte, že se vně používá pouze tato metoda.
- Vytvořte statickou metodu pro vytvoření speciální instance třídy lab.Setting (lab.Config, lab.Setup), třeba pro vysokou obtížnost hry.
Knihovna Log4j
V projektu použijte logování pomocí knihovny Log4j2.
- Přidejte logovací zprávy do některých tříd. Například do pohybujících se objektů.
- Pro pohybující se objekty v úrovni TRACE vypisujte každou změnu polohy.
Nakonfigurujte log4j2 tak aby:
- vytvářel nový soubor při každém spuštění
- Aby se po dosažení dané velikosti/stáří souboru vytvořil nový
- Aby se po dosažení počtu/celkové velikosti/stáří soubory mazaly
- Zkuste nastavit aby se v různých balíčcích použil různý log level.
Inspirujte se v dokumentaci https://logging.apache.org/log4j/2.x/manual/appenders.html a hledejte RollingFile nebo DefaultRolloverStrategy
Equals a Hashcode
Pro třídu lab.data.Score překryjte metodu equals a hashcode tak aby dávala logicky smysl.
Řešení
Řešení najdete v https://gitlab.vsb.cz/jez04-vyuka/java2/labs/java2lab03v1/-/tree/solution?ref_type=heads ve větvi solution.
https://gitlab.vsb.cz/jez04-vyuka/java2/labs/java2lab03v2/-/tree/solution?ref_type=heads
https://gitlab.vsb.cz/jez04-vyuka/java2/labs/java2lab03v3/-/tree/solution?ref_type=heads