Junior — Middle
Каква функция изпълнява ролята на прокси в езика Go?
sobes.tech AI
Отговор от AI
В езика Go няма вградена функция с името "proxy" като такава. Въпреки това, ролята на прокси сървър или прокси обект обикновено се реализира с помощта на интерфейси и структури, които прихващат извикванията и могат да променят поведението.
Например, за създаване на прокси, може да се дефинира структура, която съдържа препратка към друг обект и реализира същите методи, добавяйки допълнителна логика:
type Service interface {
DoSomething() string
}
type RealService struct {}
func (r *RealService) DoSomething() string {
return "Реалната услуга прави нещо"
}
// Proxy реализира същия интерфейс и добавя логика
type Proxy struct {
realService Service
}
func (p *Proxy) DoSomething() string {
// Допълнителна логика преди извикването
fmt.Println("Proxy: преди извикването")
result := p.realService.DoSomething()
// Допълнителна логика след извикването
fmt.Println("Proxy: след извикването")
return result
}
По този начин, ролята на прокси в Go се реализира чрез композиция и интерфейси, а не чрез някаква конкретна функция.