Sobes.tech
Junior

Parlez de l'objet companion en Kotlin.

sobes.tech IA

Réponse de l'IA

companion object en Kotlin est utilisé pour définir des membres de classe (propriétés et fonctions) qui sont communs à toutes les instances de cette classe, ainsi que pour y accéder sans créer une instance de la classe. C'est essentiellement l'équivalent des membres statiques en Java, mais implémenté comme un objet à l'intérieur de la classe.

Caractéristiques principales:

  • Une seule instance: Il ne peut y avoir qu'un companion object dans une classe.
  • Initialisation: Il est initialisé lors du premier chargement de la classe.
  • Accès aux membres privés: Il a accès aux membres privés de la classe externe.
  • Nomination: Par défaut, il porte le nom Companion, mais peut être nommé explicitement.
  • Implémentation d'interfaces: Il peut implémenter des interfaces.

Exemple d'utilisation:

class MyClass {
    companion object {
        const val TAG = "MyClass" // Constante

        fun createInstance(): MyClass { // Méthode de fabrique
            return MyClass()
        }
    }

    fun doSomething() {
        println("Faire quelque chose...")
    }
}

fun main() {
    println(MyClass.TAG) // Accès au membre du companion object
    val instance = MyClass.createInstance() // Utilisation de la méthode de fabrique
    instance.doSomething()
}

Avantages:

  • Plus sémantique: Permet de regrouper des membres "statiques" liés en un seul endroit.
  • Flexibilité: Peut implémenter des interfaces, ce qui est utile pour les patrons de conception.
  • Accès aux membres privés: Facilite la mise en œuvre de méthodes de fabrique et de singletons à l'intérieur de la classe.