Junior
Leg uit hoe pakketten en modules in Kotlin zijn opgebouwd.
sobes.tech AI
Antwoord van AI
Pakketten worden gebruikt om code te organiseren, naamconflicten te voorkomen en de leesbaarheid te verbeteren. Ze worden gedeclareerd met het sleutelwoord package aan het begin van het bestand.
Modules zijn verzamelingen van Kotlin-bronnen, build-scripts, bronnen en projectinstellingen. Ze worden gebruikt voor compilatie, uitvoering, testen en implementatie. In IntelliJ IDEA-projecten komt een module overeen met een IDE-module; in Gradle met een hoofdbroject of subproject.
Verschillen:
- Organisatieniveau: Pakketten op broncode-niveau, modules op project-compileerniveau.
- Doel: Pakketten voor logische groepering van code, modules voor afhankelijkheidsbeheer, compilatie en implementatie.
- Hiërarchie: Pakketten vormen een hiërarchie met punten (bijvoorbeeld
com.example.util), modules kunnen hiërarchisch zijn (subprojecten in Gradle) of onafhankelijk. - Afhankelijkheden: Worden tussen modules aangegeven, niet tussen pakketten.
Voorbeeld van een pakket:
// Bestand: Util.kt
package com.example.util
fun formatName(firstName: String, lastName: String): String {
return "$firstName $lastName"
}
Gebruik van het pakket:
package com.example.app
import com.example.util.formatName
fun main() {
val fullName = formatName("John", "Doe")
println(fullName)
}
Voorbeeld van projectstructuur met modules (Gradle):
myproject/
├── app/ // Applicatiemodule
│ ├── build.gradle.kts
│ └── src/
│ └── main/kotlin/com/example/app/Main.kt
└── util/ // Hulpmodule
├── build.gradle.kts
└── src/
└── main/kotlin/com/example/util/Util.kt
In app/build.gradle.kts wordt de afhankelijkheid van de util-module aangegeven:
// app/build.gradle.kts
plugins {
kotlin("jvm")
}
dependencies {
implementation(project(":util")) // Afhankelijkheid van de util-module
}