Sobes.tech
Senior

Hol jobb meghatározni az interfészt — az implementáció helyén vagy a használat helyén?

sobes.tech MI

Válasz az MI-től

Go-ban jobb meghatározni az interfészeket a használat helyén, nem a megvalósítás helyén. Ez lehetővé teszi minimális interfészek létrehozását, amelyek csak azokat a módszereket írják le, amelyekre valóban szükség van a fogyasztónak.

Ez a megközelítés növeli a rugalmasságot és egyszerűsíti a tesztelést, mivel a megvalósításnak nem kell minden interfészt ismernie, csak azokat, amelyekre szüksége van.

Példa:

// Használat helyén
type Reader interface {
    Read(p []byte) (n int, err error)
}

func Process(r Reader) {
    // csak a Read metódust használja
}

// Megvalósítás helyén
type File struct {}
func (f *File) Read(p []byte) (int, error) {
    // megvalósítás
}

Így az interfész a kliens igényei szerint van meghatározva, nem a megvalósítás szerint.