Sobes.tech
Junior

¿Qué más incluye la encapsulación además de ocultar datos?

sobes.tech AI

Respuesta de la IA

Además de ocultar datos (ocultar la implementación interna del objeto del mundo exterior), la encapsulación incluye:

  • Combinar datos y métodos que trabajan con esos datos en un solo objeto. Esto crea unidades de programa autosuficientes.
  • Control de acceso a los datos. Con los modificadores de acceso (public, protected, private) se determina cómo otros objetos pueden interactuar con el estado interno del objeto. Esto permite garantizar la integridad de los datos y prevenir cambios incorrectos.
  • Reducción de la cohesión. Un alto nivel de encapsulación ayuda a que los cambios dentro de un objeto tengan un impacto mínimo en otras partes del sistema.

Ejemplo:

<?php

class BankAccount {
    private $balance; // Ocultamos los datos

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

    public function deposit($amount) {
        if ($amount > 0) {
            $this->balance += $amount; // Los métodos trabajan con los datos
        }
    }

    public function withdraw($amount) {
        if ($amount > 0 && $amount <= $this->balance) {
            $this->balance -= $amount; // Control de acceso y integridad
            return true;
        }
        return false;
    }

    public function getBalance() {
        return $this->balance; // Proporcionamos acceso controlado
    }
}

?>

En este ejemplo, la ocultación de datos (private $balance) se combina con la provisión de métodos públicos (deposit, withdraw, getBalance) que controlan el acceso y las modificaciones a estos datos. Esto une datos y lógica en un solo objeto y garantiza la encapsulación.