Sobes.tech
Junior — Middle

Millist funktsiooni täidab proxy roll Go keeles?

sobes.tech AI

Vastus AI-lt

Go keeles ei ole sisseehitatud funktsiooni nimega "proxy" sellisel kujul. Kuid proxy-serveri või proxy-objekti rolli täidetakse tavaliselt kasutades liideseid ja struktuure, mis pealt võtavad kõnesid ja võivad käitumist muuta.

Näiteks, proxy loomise jaoks võib defineerida struktuuri, mis sisaldab viidet teisele objekti ja rakendab samu meetodeid, lisades täiendavat loogikat:

type Service interface {
    DoSomething() string
}

type RealService struct {}

func (r *RealService) DoSomething() string {
    return "Reaalne teenus teeb midagi"
}

// Proxy rakendab sama liidest ja lisab loogikat

type Proxy struct {
    realService Service
}

func (p *Proxy) DoSomething() string {
    // Täiendav loogika enne kõnet
    fmt.Println("Proxy: enne kõnet")
    result := p.realService.DoSomething()
    // Täiendav loogika pärast kõnet
    fmt.Println("Proxy: pärast kõnet")
    return result
}

Seega, proxy roll Go keeles realiseerub koostöö ja liideste kaudu, mitte mingi konkreetse funktsiooni kaudu.