Junior — Middle
Можете ли да обясните принципа на инкапсулацията и как се реализира в обектно-ориентираното програмиране?
sobes.tech AI
Отговор от AI
Капсулирането е принцип на обектно-ориентираното програмиране, който предполага скриване на вътрешната реализация на обекта и предоставяне на достъп до данните и методите само чрез определен интерфейс.
Това позволява:
- Защита на данните от неправилна употреба
- Скриване на сложността на реализацията
- Осигуряване на контрол върху промяната на състоянието на обекта
В езицата за ООП капсулирането се реализира чрез модификатори за достъп (например 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, които контролират логиката за достъп и промяна.