Kotlin Academy · Leçon

Cas d’utilisation

Modélisation du domaine

Leçon 3 sur 413 étapes

Cas d’utilisation est une leçon Kotlin Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Kotlin Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Kotlin Academy comprend 4 leçons au total.

Modéliser le domaine

Les classes de valeur sont particulièrement adaptées à la modélisation du domaine. Elles transforment des primitives anonymes en types explicites et à l'abri des erreurs, sans coût d'exécution.

Examinons des scénarios réalistes.

Identifiants typés

Des types d'identifiants distincts empêchent de transmettre un identifiant utilisateur là où un identifiant de commande est attendu — un bogue courant et coûteux.

@JvmInline
value class UserId(val value: Long)
@JvmInline
value class OrderId(val value: Long)

fun fetchUser(id: UserId) = "user " + id.value

fun main() {
    println(fetchUser(UserId(7)))
}

Unités de mesure

Envelopper les nombres dans des types d'unités vous empêche d'additionner accidentellement des mètres et des secondes, tout en documentant leur signification.

@JvmInline
value class Kilograms(val value: Double)

fun describe(weight: Kilograms) = weight.value.toString() + " kg"

fun main() {
    println(describe(Kilograms(72.5)))
}

Chaînes validées

Associez une classe de valeur à un bloc init pour garantir des invariants comme une adresse e-mail non vide.

@JvmInline
value class Email(val value: String) {
    init {
        require(value.contains("@")) { "invalid email" }
    }
}

fun main() {
    println(Email("a@b.com").value)
}

Monnaie avec comportement

Représentez la monnaie dans sa plus petite unité et ajoutez des opérations afin d'éviter les erreurs de calcul en virgule flottante liées aux devises.

@JvmInline
value class Cents(val value: Long) {
    operator fun plus(other: Cents) = Cents(value + other.value)
    fun format() = "$" + value / 100.0
}

fun main() {
    val total = Cents(1500) + Cents(250)
    println(total.format())
}

API explicites

La signature d'une fonction utilisant des classes de valeur est bien plus claire que celle qui utilise trois entiers indépendants.

@JvmInline
value class Width(val px: Int)
@JvmInline
value class Height(val px: Int)

fun area(w: Width, h: Height) = w.px * h.px

fun main() {
    println(area(Width(4), Height(5)))
}

Envelopper des données sensibles

Une classe de valeur peut redéfinir toString pour masquer les secrets dans les journaux tout en laissant la valeur brute accessible.

@JvmInline
value class Token(val value: String) {
    override fun toString() = "Token(***)"
}

fun main() {
    val t = Token("abc123")
    println(t)          // masked
    println(t.value)    // real value when needed
}

Imposer des intervalles

Utilisez les classes de valeur pour centraliser les règles d'intervalle, afin qu'aucun état invalide ne puisse être construit.

@JvmInline
value class Rating(val stars: Int) {
    init {
        require(stars in 1..5) { "stars must be 1..5" }
    }
}

fun main() {
    println(Rating(4).stars)
}

Constructeurs intelligents

Associez une classe de valeur à une fabrique compagnon qui renvoie null en cas d'entrée invalide, afin d'éviter les exceptions pour les échecs prévus.

@JvmInline
value class Age(val value: Int) {
    companion object {
        fun of(n: Int): Age? = if (n in 0..150) Age(n) else null
    }
}

fun main() {
    println(Age.of(30)?.value)
    println(Age.of(-5))
}

Résumé des modèles

Modèles courants pour les classes de valeur :

  • Identifiants typés pour éviter les confusions
  • Unités de mesure
  • Primitives validées avec init
  • Opérations du domaine au moyen d'opérateurs
  • Valeurs sensibles masquées

Sécurité à faible coût

Comme les classes de valeur sont généralement intégrées, vous bénéficiez de toute cette clarté et de toute cette sécurité du domaine pour un coût d'exécution pratiquement nul. Elles permettent facilement de rendre les états illégaux impossibles à représenter.

Vérification rapide

Vérifiez votre compréhension des cas d'utilisation des classes de valeur.

Récapitulatif

Vous avez découvert des cas d'utilisation pratiques des classes de valeur :

  • Identifiants typés, unités et chaînes validées
  • Monnaie et opérations du domaine
  • Masquage des secrets et constructeurs intelligents

Ensuite : les limites des classes de valeur.

Gratuit pour commencer

Apprends Kotlin avec un tuteur IA — gratuit

Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.

Cours
51
Leçons
203

Questions Fréquemment Posées

La leçon « Cas d’utilisation » est-elle gratuite ?

Oui — le texte complet de « Cas d’utilisation » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Kotlin Academy, passe à CoddyKit PRO. Le cours Kotlin Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Cas d’utilisation » ?

Modélisation du domaine Tu pratiques Kotlin Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Kotlin Academy ?

Aucune expérience préalable n'est requise. Kotlin Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.

Combien de temps prend la leçon « Cas d’utilisation » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Kotlin Academy ?

Oui. Chaque leçon Kotlin Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Alias de types
  2. Classes de valeurs inline
  3. Cas d’utilisation
  4. Limitations
← Retour à Kotlin Academy