Sobes.tech
Junior — Middle

Milyen funkció tölti be a proxy szerepét a Go nyelvben?

sobes.tech MI

Válasz az MI-től

A Go nyelvben nincs beépített "proxy" nevű függvény. Azonban a proxy szerver vagy proxy objektum szerepe általában interfészek és struktúrák segítségével valósul meg, amelyek elfogják a hívásokat, és módosíthatják a viselkedést.

Például, egy proxy létrehozásához definiálhatunk egy struktúrát, amely egy másik objektumra mutató hivatkozást tartalmaz, és ugyanazokat a metódusokat valósítja meg, további logikát hozzáadva:

type Service interface {
    DoSomething() string
}

type RealService struct {}

func (r *RealService) DoSomething() string {
    return "Valós szolgáltatás valamit csinál"
}

// Proxy ugyanazt az interfészt valósítja meg, és logikát ad hozzá

type Proxy struct {
    realService Service
}

func (p *Proxy) DoSomething() string {
    // Kiegészítő logika a hívás előtt
    fmt.Println("Proxy: a hívás előtt")
    result := p.realService.DoSomething()
    // Kiegészítő logika a hívás után
    fmt.Println("Proxy: a hívás után")
    return result
}

Így a proxy szerepe Go-ban összetétel és interfészek segítségével valósul meg, nem pedig egy konkrét függvény által.