Sobes.tech
Junior — Middle

¿Podría dar ejemplos de casos en los que se utilizan interfaces en programación?

sobes.tech AI

Respuesta de la IA

En Go, las interfaces se utilizan para definir comportamientos que los tipos deben implementar, sin especificar una implementación concreta. Esto permite crear programas flexibles y escalables.

Ejemplos de uso de interfaces:

  • Polimorfismo: diferentes tipos implementan una misma interfaz y pueden usarse de manera intercambiable.

  • Abstracción: ocultar detalles de implementación, por ejemplo, la interfaz io.Reader describe el método Read, y diferentes fuentes de datos (archivos, redes) lo implementan a su manera.

  • Pruebas: se pueden crear mocks que implementen interfaces para sustituir dependencias reales.

  • Manejo de errores y eventos: las interfaces permiten definir manejadores con diferentes lógicas.

Ejemplo:

package main
import "fmt"

type Speaker interface {
    Speak() string
}

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

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) // Gua
    makeSpeak(c) // Miau
}

De esta forma, las interfaces en Go permiten escribir código más universal y mantenible.