Sobes.tech
Junior

Co dalšího zahrnuje zapouzdření kromě skrytí dat?

sobes.tech AI

Odpověď od AI

Kromě skrytí dat (skrytí vnitřní implementace objektu před vnějším světem) zahrnuje zapouzdření:

  • Spojení dat a metod, které s těmito daty pracují, do jednoho objektu. To vytváří samostatné programové jednotky.
  • Ovládání přístupu k datům. Pomocí modifikátorů přístupu (public, protected, private) se určuje, jak mohou ostatní objekty interagovat s vnitřním stavem objektu. To umožňuje zajistit integritu dat a zabránit nesprávným změnám.
  • Snížení koheze. Vyšší úroveň zapouzdření přispívá k tomu, že změny uvnitř jednoho objektu mají minimální dopad na ostatní části systému.

Příklad:

<?php

class BankAccount {
    private $balance; // Skryjeme data

    public function __construct($initialBalance) {
        if ($initialBalance >= 0) {
            $this->balance = $initialBalance;
        } else {
            $this->balance = 0;
        }
    }

    public function deposit($amount) {
        if ($amount > 0) {
            $this->balance += $amount; // Metody pracují s daty
        }
    }

    public function withdraw($amount) {
        if ($amount > 0 && $amount <= $this->balance) {
            $this->balance -= $amount; // Kontrola přístupu a integrita
            return true;
        }
        return false;
    }

    public function getBalance() {
        return $this->balance; // Poskytujeme kontrolovaný přístup
    }
}

?>

V tomto příkladu je skrytí dat (private $balance) spojeno s poskytováním veřejných metod (deposit, withdraw, getBalance), které kontrolují přístup a změny těchto dat. To spojuje data a logiku do jednoho objektu a zajišťuje zapouzdření.