Interfaces en Kotlin

Comprendre les Interfaces

Une interface est un type qui définit un ensemble de méthodes et de propriétés qu'une classe peut implémenter. Elle constitue un moyen d'établir un contrat entre la classe qui l'implémente et le code qui l'appelle. En d'autres termes, une interface agit comme un plan pour une classe, qui doit obligatoirement reprendre toutes les méthodes et propriétés définies dans l'interface.

Création d'une Interface

Voici un modèle de base pour créer une interface :

interface NomInterface {
    // Propriétés et fonctions vont ici dans le corps.
}

Exemple Pratique

Prenons un exemple où nous définissons une interface appelée MonEcouteur et une classe Nom qui en hérite :

fun main() {
    val monObjet = Nom()
    println(monObjet.nom)
    monObjet.nom = "XYZ"
    println(monObjet.nom)
    monObjet.fnVide()
}

interface MonEcouteur {
    var nom: String  // Les propriétés normales sont abstraites par défaut, sans corps.
    fun sauter() {
        print("Monde")  // Le corps de la fonction indique qu'elle est 'ouverte'.
    }
    fun fnVide() // Les méthodes sont par défaut 'ouvertes' et 'publiques'.
}

class Nom : MonEcouteur {
    override var nom: String = "Bonjour"
    override fun fnVide() {
        println("Texte de substitution")
    }
    override fun sauter() {} // Surcharge facultative.
}

Dans ce code, l'interface MonEcouteur déclare une propriété et deux méthodes : - nom est une propriété de type String qui peut être lue et écrite. - sauter() est une méthode avec une implémentation par défaut qui affiche "Monde". - fnVide() est une méthode sans corps.

La classe Nom implémente l'interface MonEcouteur, surcharge ses deux méthodes ainsi que la propriété. La propriété nom est initialisée avec la valeur "Bonjour" et est modifiable dans la classe Nom. La méthode fnVide() est également surchargée, affichant le texte "Texte de substitution". La méthode sauter() est facultative à surcharger, mais le fait ici, empêchant la ligne print("Monde") d'être exécutée dans l'interface.

Le résultat de ce code sera :

Bonjour
XYZ
Texte de substitution

Utiliser les Interfaces pour votre Projet

Les interfaces jouent un rôle essentiel dans la structuration de votre code, surtout lorsque vous développez des sites web ou des applications pour votre startup. En définissant des interfaces, vous pouvez créer des classes qui respectent une architecture particulière, facilitant ainsi la maintenance et l'évolution du code.
Par exemple, si vous travaillez sur une application web, vous pourriez avoir une interface pour différents composants comme des boutons, des formulaires, etc. Chaque composant pourrait alors implémenter cette interface, s'assurant de respecter les mêmes méthodes et propriétés, ce qui rend le code plus cohérent et facile à travailler.