cvičení 02

Java Modules - project Jigsaw

Vytvožření rozhraní

V projektu  cvičení 1 , cvičení 2, cvičení 3

Analyzujte třídu DbConnector a z ní vyextrahujte rozhraní ScoreStorageInterface, které bude mít metody pro inicializaci, uložení a načtení Score z libovolného zdroje. Třída DBConnector bude implementovat toto nové rozhraní.

Projekt pro rozhraní

Nové rozhraní ScoreStorageInterface společně se třídou Score přesuňte do samostatného maven projektu. Projekt musí v module-info exportovat balík s rozhraním a třídou Score. Musíte také spustit mvn install aby se projekt nainstaloval do vašeho lokálního repozitáře .m2/repository.

V původním projektu hry musíte nový projekt s rozhraním přidat mezi závislosti v pom.xml a v module-info musí být uveden jako requires.

Projekt DBConnector

Vytvořte další nový maven projekt a do něj přesuňte třídu DBConnector. Projektu musíte v pom.xml přidat závislost na projektu s rozhraním a na db driver pro h2. Projekt musí v module-info exportovat balík s třídou DBConnector. V module-info použijte také direktivu provides pro nabídnutí třídy, která implementuje rozhraní ScoreStorageInterface.

Původní projekt hry bude v module-info deklarovat používání rozhraní ScoreStorageInterface. V pom.xml už nemusí být závislost ha H2 db driveru, ale musí tam být závislost na novém projektu se třídou DBConnector. Upravte třídu ScoreStorageFactory tak aby nevytvářela přímo instanci třídy DBConnector, ale využila třídu ServiceLoader ke získání instance třídy, která implementuje rozhraní ScoreStorageInterface.

Projekt FileStore

Vytvořte další projekt, obdobně, jako projekt se třídou DBConnctor, tentokrát se ale skóre budou ukládat do souboru a ne do databáze.