Sobes.tech
Junior — Middle

Wyjaśnij koncepcję enkapsulacji danych w programowaniu obiektowym.

sobes.tech AI

Odpowiedź od AI

Enkapsulacja to zasada programowania obiektowego, która polega na ukrywaniu wewnętrznego stanu obiektu i udostępnianiu do niego dostępu tylko przez metody (interfejs).

W Go enkapsulacja osiągana jest za pomocą widoczności identyfikatorów:

  • Nazwy zaczynające się od wielkiej litery są eksportowane i dostępne z innych pakietów (publiczne).
  • Nazwy zaczynające się od małej litery są dostępne tylko w obrębie pakietu (prywatne).

Aby więc enkapsulować dane, należy zadeklarować pola struktury z małej litery i zapewnić metody do dostępu i modyfikacji tych pól.

Przykład:

package user

type User struct {
    name string // pole prywatne
}

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
}

Taki sposób pozwala kontrolować dostęp do danych, zapewnia ich integralność i zmieniać wewnętrzną implementację bez wpływu na zewnętrzny kod.