Junior
Čo ďalšie zahŕňa zapuzdrenie okrem skrytia údajov?
sobes.tech AI
Odpoveď od AI
Okrem skrývania údajov (skrytie vnútorného implementácie objektu od vonkajšieho sveta), zahŕňa zapuzdrovanie:
- Zlúčenie údajov a metód, ktoré s týmito údajmi pracujú, do jedného objektu. To vytvára samostatné programové jednotky.
- Kontrolu prístupu k údajom. Pomocou modifikátorov prístupu (
public,protected,private) sa určuje, ako môžu iné objekty komunikovať s vnútorným stavom objektu. To umožňuje zabezpečiť integritu údajov a zabrániť nesprávnym zmenám. - Zníženie kohezie. Vysoká úroveň zapuzdrovania prispieva k tomu, že zmeny vo vnútri jedného objektu majú minimálny vplyv na ostatné časti systému.
Príklad:
<?php
class BankAccount {
private $balance; // Skrytie údajov
public function __construct($initialBalance) {
if ($initialBalance >= 0) {
$this->balance = $initialBalance;
} else {
$this->balance = 0;
}
}
public function deposit($amount) {
if ($amount > 0) {
$this->balance += $amount; // Metódy pracujú s údajmi
}
}
public function withdraw($amount) {
if ($amount > 0 && $amount <= $this->balance) {
$this->balance -= $amount; // Kontrola prístupu a integrita
return true;
}
return false;
}
public function getBalance() {
return $this->balance; // Poskytujeme kontrolovaný prístup
}
}
?>
V tomto príklade je skrytie údajov (private $balance) spojené s poskytovaním verejných metód (deposit, withdraw, getBalance), ktoré kontrolujú prístup a zmeny týchto údajov. To spája údaje a logiku do jedného objektu a zabezpečuje zapuzdrovanie.