Sobes.tech
Junior — Middle

Можете ли објаснити принцип инкапсуације и како се реализује у објектно-оријентисаном програмирању?

sobes.tech АИ

Одговор од АИ

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

Ово омогућава:

  • Заштиту података од неисправне употребе
  • Скривање сложености реализације
  • Обезбеђивање контроле над променом стања објекта

У језицима ООП, капсулација се реализује помоћу модификатора приступа (нпр. private, protected, public), који одређују која поља и методе су доступне изван.

Пример у Go-у (где се капсулација постиже преко експортисаних и неекспортисаних идентификатора):

type User struct {
    name string // неекспортисано поље, доступно само унутар пакета
}

func (u *User) GetName() string {
    return u.name // јавна метода за приступ имену
}

func (u *User) SetName(newName string) {
    if newName != "" {
        u.name = newName
    }
}

Овде, поље name је скривено од спољашњег приступа, а интеракција са њим се одвија преко метода GetName и SetName, које контролишу логику приступа и измена.