Junior — Middle
Kāda funkcija veic proxy lomu Go valodā?
sobes.tech AI
Atbilde no AI
Go valodā nav iebūvētas funkcijas ar nosaukumu "proxy" kā tādu. Tomēr, proxy servera vai proxy objekta lomu parasti īsteno ar interfeisiem un struktūrām, kas pārņem izsaukumus un var mainīt uzvedību.
Piemēram, lai izveidotu proxy, var definēt struktūru, kas satur atsauci uz citu objektu un īsteno tās pašas metodes, pievienojot papildu loģiku:
type Service interface {
DoSomething() string
}
type RealService struct {}
func (r *RealService) DoSomething() string {
return "Reālā pakalpojuma darīšana"
}
// Proxy īsteno to pašu interfeisu un pievieno loģiku
type Proxy struct {
realService Service
}
func (p *Proxy) DoSomething() string {
// Papildu loģika pirms izsaukuma
fmt.Println("Proxy: pirms izsaukuma")
result := p.realService.DoSomething()
// Papildu loģika pēc izsaukuma
fmt.Println("Proxy: pēc izsaukuma")
return result
}
Tādējādi, proxy loma Go valodā tiek īstenota ar kompozīciju un interfeisiem, nevis ar kādu konkrētu funkciju.