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.