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