Junior — Middle
Aká funkcia plní úlohu proxy v jazyku Go?
sobes.tech AI
Odpoveď od AI
V jazyku Go neexistuje žiadna vstavaná funkcia s názvom "proxy" ako taká. Avšak, úloha proxy servera alebo proxy objektu sa zvyčajne implementuje pomocou rozhraní a štruktúr, ktoré zachytávajú volania a môžu meniť správanie.
Napríklad, na vytvorenie proxy môžete definovať štruktúru, ktorá obsahuje odkaz na iný objekt a implementuje rovnaké metódy, pridávajúc ďalšiu logiku:
type Service interface {
DoSomething() string
}
type RealService struct {}
func (r *RealService) DoSomething() string {
return "Reálna služba niečo robí"
}
// Proxy implementuje rovnaké rozhranie a pridáva logiku
type Proxy struct {
realService Service
}
func (p *Proxy) DoSomething() string {
// Dodatočná logika pred volaním
fmt.Println("Proxy: pred volaním")
result := p.realService.DoSomething()
// Dodatočná logika po volaní
fmt.Println("Proxy: po volaní")
return result
}
Takto je úloha proxy v Go realizovaná prostredníctvom kompozície a rozhraní, nie prostredníctvom nejakej konkrétnej funkcie.