Sobes.tech
Junior — Middle

Ce funcție îndeplinește rolul de proxy în limbajul Go?

sobes.tech AI

Răspuns de la AI

În limbajul Go, nu există o funcție încorporată numită "proxy" ca atare. Cu toate acestea, rolul unui server proxy sau al unui obiect proxy este de obicei implementat folosind interfețe și structuri care interceptează apelurile și pot modifica comportamentul.

De exemplu, pentru a crea un proxy, se poate defini o structură care conține o referință la un alt obiect și care implementează aceleași metode, adăugând logică suplimentară:

type Service interface {
    DoSomething() string
}

type RealService struct {}

func (r *RealService) DoSomething() string {
    return "Serviciu real făcând ceva"
}

// Proxy implementează aceeași interfață și adaugă logică

type Proxy struct {
    realService Service
}

func (p *Proxy) DoSomething() string {
    // Logică suplimentară înainte de apel
    fmt.Println("Proxy: înainte de apel")
    result := p.realService.DoSomething()
    // Logică suplimentară după apel
    fmt.Println("Proxy: după apel")
    return result
}

Astfel, rolul proxy-ului în Go este realizat prin compoziție și interfețe, nu printr-o funcție anume.