Sobes.tech
Junior — Middle

Pourriez-vous donner des exemples de cas où les interfaces sont utilisées en programmation?

sobes.tech IA

Réponse de l'IA

En Go, les interfaces sont utilisées pour définir le comportement que doivent implémenter les types, sans spécifier une implémentation concrète. Cela permet de créer des programmes flexibles et évolutifs.

Exemples d'utilisation des interfaces :

  • Polymorphisme : différents types implémentent une même interface et peuvent être utilisés de manière interchangeable.

  • Abstraction : cacher les détails d'implémentation, par exemple, l'interface io.Reader décrit la méthode Read, et différentes sources de données (fichiers, réseaux) l'implémentent à leur manière.

  • Test : il est possible de créer des mocks qui implémentent des interfaces pour remplacer des dépendances réelles.

  • Gestion des erreurs et des événements : les interfaces permettent de définir des gestionnaires avec différentes logiques.

Exemple :

package main
import "fmt"

type Speaker interface {
    Speak() string
}

type Dog struct{}
func (d Dog) Speak() string {
    return "Wouf"
}

type Cat struct{}
func (c Cat) Speak() string {
    return "Miaou"
}

func makeSpeak(s Speaker) {
    fmt.Println(s.Speak())
}

func main() {
    d := Dog{}
    c := Cat{}
    makeSpeak(d) // Wouf
    makeSpeak(c) // Miaou
}

Ainsi, les interfaces en Go permettent d'écrire un code plus universel et maintenable.