Junior — Middle
Millist funktsiooni täidab proxy roll Go keeles?
sobes.tech AI
Vastus AI-lt
Go keeles ei ole sisseehitatud funktsiooni nimega "proxy" sellisel kujul. Kuid proxy-serveri või proxy-objekti rolli täidetakse tavaliselt kasutades liideseid ja struktuure, mis pealt võtavad kõnesid ja võivad käitumist muuta.
Näiteks, proxy loomise jaoks võib defineerida struktuuri, mis sisaldab viidet teisele objekti ja rakendab samu meetodeid, lisades täiendavat loogikat:
type Service interface {
DoSomething() string
}
type RealService struct {}
func (r *RealService) DoSomething() string {
return "Reaalne teenus teeb midagi"
}
// Proxy rakendab sama liidest ja lisab loogikat
type Proxy struct {
realService Service
}
func (p *Proxy) DoSomething() string {
// Täiendav loogika enne kõnet
fmt.Println("Proxy: enne kõnet")
result := p.realService.DoSomething()
// Täiendav loogika pärast kõnet
fmt.Println("Proxy: pärast kõnet")
return result
}
Seega, proxy roll Go keeles realiseerub koostöö ja liideste kaudu, mitte mingi konkreetse funktsiooni kaudu.