Sobes.tech
Junior — Middle

Explicați conceptul de încapsulare a datelor în programarea orientată pe obiecte.

sobes.tech AI

Răspuns de la AI

Încapsularea este un principiu al programării orientate pe obiecte care implică ascunderea stării interne a unui obiect și furnizarea accesului la aceasta doar prin metode (interfață).

În Go, încapsularea se realizează prin vizibilitatea identificatorilor:

  • Numele care încep cu o literă majusculă sunt exportate și accesibile din alte pachete (publice).
  • Numele care încep cu o literă minusculă sunt accesibile doar în interiorul pachetului (private).

Prin urmare, pentru a încapsula datele, trebuie să declarați câmpurile structurii cu o literă minusculă și să furnizați metode pentru accesarea și modificarea acestor câmpuri.

Exemplu:

package user

type User struct {
    name string // câmp privat
}

func NewUser(name string) *User {
    return &User{name: name}
}

func (u *User) GetName() string {
    return u.name
}

func (u *User) SetName(name string) {
    u.name = name
}

Această abordare permite controlul accesului la date, asigurarea integrității lor și modificarea implementării interne fără a afecta codul extern.