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