Junior
Wat omvat encapsulatie nog meer dan gegevensverberg?
sobes.tech AI
Antwoord van AI
Naast het verbergen van gegevens (het verbergen van de interne implementatie van het object voor de buitenwereld), omvat encapsulatie:
- Het combineren van gegevens en methoden die met deze gegevens werken in één object. Dit creëert zelfvoorzienende programmeereenheden.
- Toegangscontrole tot gegevens. Met behulp van toegangsspecificaties (
public,protected,private) wordt bepaald hoe andere objecten kunnen omgaan met de interne toestand van het object. Dit zorgt voor gegevensintegriteit en voorkomt onjuiste wijzigingen. - Vermindering van de samenhang. Een hoog niveau van encapsulatie zorgt ervoor dat veranderingen binnen één object minimale invloed hebben op andere delen van het systeem.
Voorbeeld:
<?php
class BankAccount {
private $balance; // Verbergen van gegevens
public function __construct($initialBalance) {
if ($initialBalance >= 0) {
$this->balance = $initialBalance;
} else {
$this->balance = 0;
}
}
public function deposit($amount) {
if ($amount > 0) {
$this->balance += $amount; // Methodes werken met gegevens
}
}
public function withdraw($amount) {
if ($amount > 0 && $amount <= $this->balance) {
$this->balance -= $amount; // Toegangscontrole en integriteit
return true;
}
return false;
}
public function getBalance() {
return $this->balance; // Bieden gecontroleerde toegang
}
}
?>
In dit voorbeeld wordt het verbergen van gegevens (private $balance) gecombineerd met het bieden van openbare methoden (deposit, withdraw, getBalance) die de toegang en wijzigingen aan deze gegevens controleren. Dit combineert gegevens en logica in één object en garandeert encapsulatie.