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.