Poderia dar exemplos de casos em que se usam interfaces na programação?
sobes.tech IA
Resposta da IA
No Go, as interfaces são usadas para definir comportamentos que os tipos devem implementar, sem especificar uma implementação concreta. Isso permite criar programas flexíveis e escaláveis.
Exemplos de uso de interfaces:
-
Polimorfismo: diferentes tipos implementam uma mesma interface e podem ser usados de forma intercambiável.
-
Abstração: ocultar detalhes de implementação, por exemplo, a interface
io.Readerdescreve o métodoRead, e diferentes fontes de dados (ficheiros, redes) a implementam à sua maneira. -
Testes: é possível criar mocks que implementem interfaces para substituir dependências reais.
-
Tratamento de erros e eventos: as interfaces permitem definir manipuladores com diferentes lógicas.
Exemplo:
package main
import "fmt"
type Speaker interface {
Speak() string
}
type Dog struct{}
func (d Dog) Speak() string {
return "Au"
}
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) // Au
makeSpeak(c) // Miau
}
Assim, as interfaces em Go permitem escrever código mais universal e sustentável.