Sobes.tech
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 се реализира чрез композиция и интерфейси, а не чрез някаква конкретна функция.