Sobes.tech
Senior

Interfeysni implementatsiya qilish joyida yoki foydalanish joyida aniqlash yaxshiroqmi?

sobes.tech AI

AIdan javob

Go tilida, interfeyslarni foydalanish joyida aniqlash yaxshiroq, bajarilish joyida emas. Bu, faqat iste'molchi uchun haqiqatan kerak bo'lgan metodlarni tasvirlaydigan minimal interfeyslarni yaratishga imkon beradi.

Bu yondashuv moslashuvchanlikni oshiradi va testlarni soddalashtiradi, chunki amalga oshirish barcha interfeyslarni bilishi shart emas, faqat unga kerak bo'lganlarini.

Misol:

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

func Process(r Reader) {
    // faqat Read metodidan foydalanadi
}

// Amalga oshirish joyida
type File struct {}
func (f *File) Read(p []byte) (int, error) {
    // amalga oshirish
}

Shu tarzda, interfeys mijozning ehtiyojlariga asoslangan holda aniqlanadi, bajarilish emas.