Sobes.tech
Senior

ინტერფეისის განსაზღვრა უკეთესია განხორციელების ადგილას თუ გამოყენების ადგილას?

sobes.tech AI

პასუხი AI-სგან

Go-ში უკეთესია ინტერფეისების განსაზღვრა გამოყენების ადგილას, არა განხორციელების ადგილას. ეს საშუალებას აძლევს შექმნათ მინიმალური ინტერფეისები, რომლებიც აღწერენ მხოლოდ იმ მეთოდებს, რომლებიც რეალურად სჭირდება მომხმარებელს.

ეს მიდგომა ზრდის მოქნილობას და ამარტივებს ტესტირებას, რადგან განხორციელება არ უნდა იცოდეს ყველა ინტერფეისი, მხოლოდ那些, რომლებიც მას სჭირდება.

მაგალითი:

// გამოყენების ადგილას
type Reader interface {
    Read(p []byte) (n int, err error)
}

func Process(r Reader) {
    // მხოლოდ Read მეთოდის გამოყენება
}

// განხორციელების ადგილას
type File struct {}
func (f *File) Read(p []byte) (int, error) {
    // განხორციელება
}

ამგვარად, ინტერფეისი განსაზღვრულია მომხმარებლის საჭიროებების მიხედვით, არა განხორციელების.