Junior — Middle
Czy możesz wyjaśnić zasadę enkapsulacji i jak jest ona realizowana w programowaniu obiektowym?
sobes.tech AI
Odpowiedź od AI
Enkapsulacja to zasada programowania obiektowego, która polega na ukrywaniu wewnętrznej implementacji obiektu i udostępnianiu dostępu do danych i metod tylko przez określony interfejs.
To pozwala:
- Chronić dane przed nieprawidłowym użyciem
- Ukryć złożoność implementacji
- Zapewnić kontrolę nad zmianą stanu obiektu
W językach OOP enkapsulacja realizowana jest za pomocą modyfikatorów dostępu (np. private, protected, public), które określają, które pola i metody są dostępne z zewnątrz.
Przykład w Go (gdzie enkapsulacja osiągana jest przez eksportowane i nieeksportowane identyfikatory):
type User struct {
name string // nieeksportowane pole, dostępne tylko w pakiecie
}
func (u *User) GetName() string {
return u.name // publiczna metoda do dostępu do imienia
}
func (u *User) SetName(newName string) {
if newName != "" {
u.name = newName
}
}
Tutaj pole name jest ukryte przed dostępem z zewnątrz, a interakcja z nim odbywa się przez metody GetName i SetName, które kontrolują logikę dostępu i zmiany.