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
}
Овај приступ омогућава контролу приступа подацима, обезбеђује њихову целовитост и омогућава промену унутрашње имплементације без утицаја на спољни код.