Sobes.tech
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.