Sobes.tech
Junior — Middle

Puteți oferi exemple de cazuri în care se utilizează interfețe în programare?

sobes.tech AI

Răspuns de la AI

În Go, interfețele sunt utilizate pentru a defini comportamente pe care trebuie să le implementeze tipurile, fără a specifica o implementare concretă. Acest lucru permite crearea de programe flexibile și extensibile.

Exemple de utilizare a interfețelor:

  • Polimorfism: diferite tipuri implementează aceeași interfață și pot fi utilizate interschimbabil.

  • Abstracție: ascunde detaliile de implementare, de exemplu, interfața io.Reader descrie metoda Read, iar diferite surse de date (fișiere, rețele) o implementează în moduri diferite.

  • Testare: se pot crea mock-uri care implementează interfețele pentru a înlocui dependențele reale.

  • Gestionarea erorilor și evenimentelor: interfețele permit definirea handler-ilor cu logică diferită.

Exemplu:

package main
import "fmt"

type Speaker interface {
    Speak() string
}

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

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

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

func main() {
    d := Dog{}
    c := Cat{}
    makeSpeak(d) // Ham
    makeSpeak(c) // Miau
}

Astfel, interfețele în Go permit scrierea unui cod mai universal și mai ușor de întreținut.