Junior — Middle
Go тилинде proxy ролун аткарган функция кандай?
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'до прокси ролу композиция жана интерфейстер аркылуу ишке ашырылат, белгилүү бир функция аркылуу эмес.