Junior
Šta još uključuje enkapsulacija osim skrivanja podataka?
sobes.tech АИ
Одговор од АИ
Поред скривања података (скривање унутрашње имплементације објекта од спољашњег света), енкапсулација укључује:
- Комбинацију података и метода који раде са тим подацима у један објекат. Ово ствара самодовољне програмске јединице.
- Контролу приступа подацима. Помоћу модификатора приступа (
public,protected,private) одређује се како други објекти могу да комуницирају са унутрашњим стањем објекта. Ово омогућава да се обезбеди интегритет података и спрече неправилне промене. - Смањење когезије. Висок ниво енкапсулације доприноси томе да промене унутар једног објекта минимално утичу на друге делове система.
Пример:
<?php
class BankAccount {
private $balance; // Скривање података
public function __construct($initialBalance) {
if ($initialBalance >= 0) {
$this->balance = $initialBalance;
} else {
$this->balance = 0;
}
}
public function deposit($amount) {
if ($amount > 0) {
$this->balance += $amount; // Методи раде са подацима
}
}
public function withdraw($amount) {
if ($amount > 0 && $amount <= $this->balance) {
$this->balance -= $amount; // Контрола приступа и интегритет
return true;
}
return false;
}
public function getBalance() {
return $this->balance; // Обезбеђујемо контролисани приступ
}
}
?>
У овом примеру, скривање података (private $balance) се комбинује са пружањем јавних метода (deposit, withdraw, getBalance) који контролишу приступ и измене ових података. Ово спаја податке и логику у један објекат и обезбеђује енкапсулацију.