Senior
Да ли је боље дефинисати интерфејс на месту имплементације или месту коришћења?
sobes.tech АИ
Одговор од АИ
U Go je bolje definisati interfejse na mestu korišćenja, a ne na mestu implementacije. To omogućava kreiranje minimalnih interfejsa koji opisuju samo one metode koje su zaista potrebne potrošaču.
Ovaj pristup povećava fleksibilnost i pojednostavljuje testiranje, jer implementacija ne mora da poznaje sve interfejse, već samo one koje joj trebaju.
Primer:
// Na mestu korišćenja
type Reader interface {
Read(p []byte) (n int, err error)
}
func Process(r Reader) {
// koristi samo metodu Read
}
// Na mestu implementacije
type File struct {}
func (f *File) Read(p []byte) (int, error) {
// implementacija
}
Na ovaj način, interfejs je definisan u skladu sa potrebama klijenta, a ne implementacije.