Sobes.tech
Junior

Mit tartalmaz még az inkapszuláció aadatok elrejtése mellett?

sobes.tech MI

Válasz az MI-től

Az adatok elrejtése (az objektum belső megvalósításának elrejtése a külső világ elől) mellett az inkapszuláció a következőket foglalja magában:

  • Az adatok és az azokkal dolgozó módszerek egyetlen objektumba való egyesítése. Ez önálló program egységeket hoz létre.
  • Hozzáférés-ellenőrzés az adatokhoz. A hozzáférési módosítók (public, protected, private) segítségével meghatározható, hogy más objektumok hogyan léphetnek kapcsolatba az objektum belső állapotával. Ez biztosítja az adatok integritását és megakadályozza a helytelen módosításokat.
  • A kohézió csökkentése. A magas szintű inkapszuláció hozzájárul ahhoz, hogy egy objektumon belüli változtatások minimális hatással legyenek a rendszer többi részére.

Példa:

<?php

class BankAccount {
    private $balance; // Az adatok elrejtése

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

    public function deposit($amount) {
        if ($amount > 0) {
            $this->balance += $amount; // A módszerek az adatokkal dolgoznak
        }
    }

    public function withdraw($amount) {
        if ($amount > 0 && $amount <= $this->balance) {
            $this->balance -= $amount; // Hozzáférés-ellenőrzés és integritás
            return true;
        }
        return false;
    }

    public function getBalance() {
        return $this->balance; // Ellenőrzött hozzáférést biztosítunk
    }
}

?>

Ebben a példában az adatok elrejtése (private $balance) összekapcsolódik a nyilvános módszerek (deposit, withdraw, getBalance) biztosításával, amelyek ellenőrzik a hozzáférést és a módosításokat ezekhez az adatokhoz. Ez összeköti az adatokat és a logikát egyetlen objektumba, és biztosítja az inkapszulációt.