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, које контролишу логику приступа и измена.