Sobes.tech
Junior — Middle

Можете ли да наведете примере случајева када се у програмирању користе интерфејси?

sobes.tech АИ

Одговор од АИ

U Go jeziku, interfejsi se koriste za definisanje ponašanja koje tipovi moraju implementirati, bez specificiranja konkretne implementacije. Ovo omogućava kreiranje fleksibilnih i proširivih programa.

Primeri korišćenja interfejsa:

  • Polimorfizam: različiti tipovi implementiraju isti interfejs i mogu se koristiti zamenljivo.

  • Apstrakcija: skrivanje detalja implementacije, na primer, interfejs io.Reader opisuje metodu Read, a različiti izvori podataka (fajlovi, mreže) je implementiraju na svoj način.

  • Testiranje: mogu se praviti mock-ovi koji implementiraju interfejse za zamenjivanje stvarnih zavisnosti.

  • Obrada grešaka i događaja: interfejsi omogućavaju definisanje handlera sa različitom logikom.

Primer:

package main
import "fmt"

type Speaker interface {
    Speak() string
}

type Dog struct{}
func (d Dog) Speak() string {
    return "Gau"
}

type Cat struct{}
func (c Cat) Speak() string {
    return "Miau"
}

func makeSpeak(s Speaker) {
    fmt.Println(s.Speak())
}

func main() {
    d := Dog{}
    c := Cat{}
    makeSpeak(d) // Gau
    makeSpeak(c) // Miau
}

Na ovaj način, interfejsi u Go omogućavaju pisanje univerzalnijeg i održivijeg koda.