Uit de cursus: Java voor gevorderden
Modules in Java begrijpen - tutorial Java
Uit de cursus: Java voor gevorderden
Modules in Java begrijpen
- [Instructeur] In Java 9 werd een nieuw modulesysteem geïntroduceerd. Modulariteit maakt het gemakkelijker om goed ingekapselde code te schrijven door grote codebases op te splitsen in kleine secties. Waarom is er dan een modulesysteem geïntroduceerd? Dit kan worden beantwoord door naar de JDK zelf te kijken. Vóór Java 9 was de JDK één groot monolithisch bouwwerk. Zelfs als je alleen een kleine applicatie wilde schrijven, moest je nog steeds de hele enorme JDK op je computer hebben. Dat was zelfs als je er niet veel van gebruikte. Een ander probleem was dat oude ongebruikte code of oude code met een beveiligingslek erg moeilijk te verwijderen was. Het verwijderen ervan zou leiden tot achterwaartse compatibiliteitsproblemen. De oplossing voor dit probleem was het introduceren van modules. Dit betekende dat de JDK in kleine secties kon worden opgedeeld. Oude legacy-code kan worden verwijderd en dat geldt ook voor codes die niet vaak worden gebruikt. Alles extra's kan worden toegevoegd indien nodig. Als er gebruik moet worden gemaakt van veel van de beschikbare modules, kunnen deze eenvoudig in de applicatie worden geïmporteerd. Het modulesysteem is dus gebruikt om de JDK zelf op te breken. Maar het kan ook worden gebruikt voor het maken van Java-applicaties. Ook bestaande Java-applicaties kunnen modulair worden gemaakt. Java wordt vaak gebruikt voor het bouwen van grote applicaties. En enorme codebases zijn niet ongebruikelijk. Het structureren van grote applicaties kan erg lastig zijn. Maar modulariteit is een nuttig hulpmiddel om hun complexiteit te verminderen. Dus wat is een module? Een module is een groep gerelateerde code. Het bevat dus wat code en het kan ook wat andere bronnen bevatten. Het moet ook een naam hebben. Net als pakketten in Java bevinden modulenamen zich in de wereldwijde naamruimte en moeten ze uniek zijn. Dat betekent dat elke bestaande Java-module een andere naam moet hebben. Bij pakketten wordt dit vaak bereikt door gebruik te maken van een bedrijfsdomeinnaam, bijvoorbeeld com.mijnbedrijf.mijnpakket. Iets soortgelijks kan worden gedaan met modules. U kunt het bijvoorbeeld com.mijnbedrijf.mijnmodule noemen. Een module bevat ook wat informatie over de module zelf. Standaard is alles in een module verborgen voor de buitenwereld. Zelfs als een les openbaar is, is deze eigenlijk niet toegankelijk buiten de module. Maar elke module heeft een moduledescriptor. Dit kan worden gebruikt om aan te geven of code in de module toegankelijk moet zijn voor andere modules. De descriptor kan ook worden gebruikt om aan te geven of code van andere modules zal worden gebruikt. Dit is een handige manier om ervoor te zorgen dat de code is ingekapseld. Alleen de code die nodig is, kan zichtbaar worden gemaakt voor de buitenwereld. En het maakt het structureren van grote codebases veel beter beheersbaar.
Oefen terwijl u leert met oefenbestanden
Download de bestanden die de cursusleider gebruikt tijdens de cursus. Volg de stappen en leer door te kijken, te luisteren en te oefenen.