Sobes.tech
Junior

Šta još uključuje enkapsulacija osim skrivanja podataka?

sobes.tech АИ

Одговор од АИ

Поред скривања података (скривање унутрашње имплементације објекта од спољашњег света), енкапсулација укључује:

  • Комбинацију података и метода који раде са тим подацима у један објекат. Ово ствара самодовољне програмске јединице.
  • Контролу приступа подацима. Помоћу модификатора приступа (public, protected, private) одређује се како други објекти могу да комуницирају са унутрашњим стањем објекта. Ово омогућава да се обезбеди интегритет података и спрече неправилне промене.
  • Смањење когезије. Висок ниво енкапсулације доприноси томе да промене унутар једног објекта минимално утичу на друге делове система.

Пример:

<?php

class BankAccount {
    private $balance; // Скривање података

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

    public function deposit($amount) {
        if ($amount > 0) {
            $this->balance += $amount; // Методи раде са подацима
        }
    }

    public function withdraw($amount) {
        if ($amount > 0 && $amount <= $this->balance) {
            $this->balance -= $amount; // Контрола приступа и интегритет
            return true;
        }
        return false;
    }

    public function getBalance() {
        return $this->balance; // Обезбеђујемо контролисани приступ
    }
}

?>

У овом примеру, скривање података (private $balance) се комбинује са пружањем јавних метода (deposit, withdraw, getBalance) који контролишу приступ и измене ових података. Ово спаја податке и логику у један објекат и обезбеђује енкапсулацију.