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.