Sobes.tech
Senior

Ar geriau apibrėžti sąsają įgyvendinimo vietoje ar naudojimo vietoje?

sobes.tech AI

Atsakymas iš AI

Go kalba yra geriau apibrėžti sąsajas naudojimo vietoje, o ne įgyvendinimo vietoje. Tai leidžia kurti minimalias sąsajas, kurios aprašo tik tas metodus, kurie iš tikrųjų reikalingi vartotojui.

Šis požiūris didina lankstumą ir supaprastina testavimą, nes įgyvendinimas neturi žinoti visų sąsajų, tik tų, kurios jam reikalingos.

Pavyzdys:

// Naudojimo vietoje
type Reader interface {
    Read(p []byte) (n int, err error)
}

func Process(r Reader) {
    // naudoja tik Read metodą
}

// Įgyvendinimo vietoje
type File struct {}
func (f *File) Read(p []byte) (int, error) {
    // įgyvendinimas
}

Taip sąsaja apibrėžiama pagal kliento poreikius, o ne įgyvendinimą.