Obyekt yönümlü proqramlaşdırmada yerləşdirmə mexanizmi ilə irs arasında nə fərq var?
sobes.tech Süni İntellekt
AI-dan cavab
Obyekt yönümlü proqramlaşdırmada (və xüsusən Go-da) irsiyyət və yerləşdirmə iki kodun təkrarlanmasının yollarıdır, lakin mexanika və semantika baxımından fərqlidirlər.
-
İrsiyyət — bir sinifin (və ya tipin) başqa birini genişləndirməsi, onun xüsusiyyətlərini və metodlarını miras alması və onları yenidən təyin edə bilməsidir. Go-da klassik irsiyyət yoxdur.
-
Yerləşdirmə (embedding) isə, bir tipin digərini adı olmayan sahə kimi daxil etməsidir. Bu, yerləşdirilmiş tipin metodlarını "mirasa" almağa imkan verir, lakin sərt irsiyyət hierarşiyası olmadan. Yerləşdirmə kompozisiya və nümayəndəlik təmin edir, irsiyyət yerinə.
Go-da yerləşdirmə nümunəsi:
type Animal struct {
Name string
}
func (a Animal) Speak() string {
return "..."
}
type Dog struct {
Animal // yerləşdirmə
}
func (d Dog) Speak() string {
return "Woof!"
}
Burada, Dog, Animal-ı yerləşdirir və onun metodlarından istifadə edə bilər, lakin onları yenidən təyin edə də bilər.
Nəticədə, Go-da yerləşdirmə klassik irsiyyətə nisbətən daha çevik və sadə kod təkrarlanması üsuludur.