Sobes.tech
Junior — Middle

Em que lugares é recomendado declarar interfaces no código de programação?

sobes.tech IA

Resposta da IA

No Go, recomenda-se declarar interfaces nos locais onde são usadas, e não onde são implementadas. A ideia é que a interface descreva o comportamento necessário ao cliente, e não a implementação.

Frequentemente, as interfaces são declaradas:

  • Nos pacotes onde são consumidas (usadas), e não nos pacotes onde são implementadas.
  • Nos locais onde é necessário abstrair de uma implementação concreta.

Isso facilita os testes e a extensibilidade do código. Por exemplo, se uma função aceita uma interface, ela não depende de um tipo específico, apenas de um conjunto de métodos.

Exemplo:

// No pacote client
type Reader interface {
    Read(p []byte) (n int, err error)
}

func Process(r Reader) {
    // Usamos Read, sem conhecer a implementação concreta
}

A implementação da interface pode estar em outro pacote e não requer declaração explícita.