Sobes.tech
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.