Sobes.tech
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.