Junior — Middle
Кадом вазифа дар забони Go нақши proxy-ро иҷро мекунад?
sobes.tech AI
Ҷавоб аз AI
Дар забони Go ягон функсияи дарунсохт бо номи "proxy" вуҷуд надорад. Аммо, нақши сервери proxy ё объекти proxy одатан бо истифода аз интерфейсҳо ва структураҳое амалӣ карда мешавад, ки занҷирҳоро мегиранд ва метавонанд рафторро тағир диҳанд.
Масалан, барои сохтани proxy, шумо метавонед структураеро муайян кунед, ки истинод ба объекти дигар дорад ва ҳамон методҳоро иҷро мекунад, илова кардани логикаи иловагӣ:
type Service interface {
DoSomething() string
}
type RealService struct {}
func (r *RealService) DoSomething() string {
return "Хизматрасонии воқеӣ кор мекунад"
}
// Proxy иҷро мекунад ҳамон интерфейс ва логикаи иловагӣ медиҳад
type Proxy struct {
realService Service
}
func (p *Proxy) DoSomething() string {
// Логикаи иловагӣ пеш аз занҷир
fmt.Println("Proxy: пеш аз занҷир")
result := p.realService.DoSomething()
// Логикаи иловагӣ пас аз занҷир
fmt.Println("Proxy: пас аз занҷир")
return result
}
Бинобар ин, нақши proxy дар Go тавассути композишн ва интерфейсҳо амалӣ мешавад, на тавассути ягон функсияи махсус.