Sobes.tech
Junior — Middle

Објасните концепт енкапсулације података у објектно оријентисаном програмирању.

sobes.tech АИ

Одговор од АИ

Капсулација је принцип објектно-оријентисаног програмирања који подразумева скривање унутрашњег стања објекта и пружање приступа њему само кроз методе (интерфејс).

У Јогу, капсулација се постиже помоћу видљивости идентификатора:

  • Имена која почињу великим словом се извози и доступна су из других пакета (јавна).
  • Имена која почињу малим словом су доступна само унутар пакета (приватна).

Да би се подаци капсулисали, потребно је да се поља структуре објаве малим словом и да се обезбеде методи за приступ и измену тих поља.

Пример:

package user

type User struct {
    name string // приватно поље
}

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
}

Овај приступ омогућава контролу приступа подацима, обезбеђује њихову целовитост и омогућава промену унутрашње имплементације без утицаја на спољни код.