Junior — Middle
Kokia funkcija atlieka proxy vaidmenį Go kalboje?
sobes.tech AI
Atsakymas iš AI
Go kalboje nėra įmontuotos funkcijos pavadinimu "proxy" kaip tokios. Tačiau, proxy serverio ar proxy objekto vaidmuo paprastai įgyvendinamas naudojant sąsajas ir struktūras, kurios perima skambučius ir gali keisti elgesį.
Pavyzdžiui, norint sukurti proxy, galima apibrėžti struktūrą, kuri turi nuorodą į kitą objektą ir įgyvendina tas pačias metodus, pridėdama papildomą logiką:
type Service interface {
DoSomething() string
}
type RealService struct {}
func (r *RealService) DoSomething() string {
return "Realusis servisas daro kažką"
}
// Proxy įgyvendina tą pačią sąsają ir prideda logiką
type Proxy struct {
realService Service
}
func (p *Proxy) DoSomething() string {
// Papildoma logika prieš skambutį
fmt.Println("Proxy: prieš skambutį")
result := p.realService.DoSomething()
// Papildoma logika po skambučio
fmt.Println("Proxy: po skambučio")
return result
}
Taip, proxy vaidmuo Go kalboje yra įgyvendinamas per sudėtį ir sąsajas, o ne per kokią nors konkrečią funkciją.