Senior
Vai labāk definēt saskarni implementācijas vietā vai lietošanas vietā?
sobes.tech AI
Atbilde no AI
Go valodā ir labāk definēt saskarnes lietošanas vietā, nevis realizācijas vietā. Tas ļauj izveidot minimālas saskarnes, kas apraksta tikai tās metodes, kas patiešām ir nepieciešamas lietotājam.
Šī pieeja palielina elastību un vienkāršo testēšanu, jo realizācija nav jāzina par visām saskarnēm, tikai tām, kas tai nepieciešamas.
Piemērs:
// Lietošanas vietā
type Reader interface {
Read(p []byte) (n int, err error)
}
func Process(r Reader) {
// izmanto tikai Read metodi
}
// Realizācijas vietā
type File struct {}
func (f *File) Read(p []byte) (int, error) {
// realizācija
}
Tādējādi saskarne tiek definēta atbilstoši klienta vajadzībām, nevis realizācijai.