Sobes.tech
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.