Sobes.tech
Senior

Kas on parem määratleda liides rakendamise kohas või kasutamise kohas?

sobes.tech AI

Vastus AI-lt

Go keeles on parem määratleda liidesed kasutuspaigas, mitte rakendamise kohas. See võimaldab luua minimaalset liidest, mis kirjeldab ainult neid meetodeid, mida tegelikult tarbija vajab.

See lähenemine suurendab paindlikkust ja lihtsustab testimist, kuna rakendus ei pea teadma kõiki liideseid, vaid ainult neid, mis talle vajalikud.

Näide:

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

func Process(r Reader) {
    // kasutab ainult Read meetodit
}

// Rakenduse kohas
type File struct {}
func (f *File) Read(p []byte) (int, error) {
    // rakendus
}

Seega on liides määratletud vastavalt kliendi vajadustele, mitte rakendusele.