Junior — Middle
Koja funkcija obavlja ulogu proxyja u jeziku Go?
sobes.tech АИ
Одговор од АИ
U jeziku Go ne postoji ugrađena funkcija pod nazivom "proxy" kao takva. Međutim, uloga proxy servera ili proxy objekta obično se implementira pomoću interfejsa i struktura koje presreću pozive i mogu menjati ponašanje.
Na primer, za kreiranje proxy-ja, možete definisati strukturu koja sadrži referencu na drugi objekat i implementira iste metode, dodajući dodatnu logiku:
type Service interface {
DoSomething() string
}
type RealService struct {}
func (r *RealService) DoSomething() string {
return "Prava usluga radi nešto"
}
// Proxy implementira isti interfejs i dodaje logiku
type Proxy struct {
realService Service
}
func (p *Proxy) DoSomething() string {
// Dodatna logika pre poziva
fmt.Println("Proxy: pre poziva")
result := p.realService.DoSomething()
// Dodatna logika posle poziva
fmt.Println("Proxy: posle poziva")
return result
}
Na ovaj način, uloga proxy-ja u Go jeziku se ostvaruje putem kompozicije i interfejsa, a ne putem neke specifične funkcije.