Senior
Und este mai bine să definești interfața — în locul implementării sau în locul utilizării?
sobes.tech AI
Răspuns de la AI
În Go, este mai bine să definești interfețele în locul în care sunt utilizate, nu în locul în care sunt implementate. Acest lucru permite crearea unor interfețe minime care descriu doar metodele de care are nevoie cu adevărat consumatorul.
Această abordare crește flexibilitatea și simplifică testarea, deoarece implementarea nu trebuie să cunoască toate interfețele, ci doar pe cele de care are nevoie.
Exemplu:
// În locul de utilizare
type Reader interface {
Read(p []byte) (n int, err error)
}
func Process(r Reader) {
// folosește doar metoda Read
}
// În locul de implementare
type File struct {}
func (f *File) Read(p []byte) (int, error) {
// implementare
}
Astfel, interfața este definită în funcție de nevoile clientului, nu de implementare.