Cita: Mensaje Original por hogasa Ojo. No me tomen como el abanderado del "no usen getter/setter". Yo estoy de acuerdo
en que se deben usar por el tema del encapsulamiento. Pero al no haber directivas de privacidad en PHP4...
A lo mejor me estoy obviando algun otro beneficio de los getters/setters. Pero hacerlo solo por respetar las reglas de POO... Que pasa? el encapsulamiento ya de por si no te parece un motivo suficiente?
El que un objeto no le tenga que interesar como otros objetos guardan internamente sus datos, no te parece suficiente?
En un ejemplo como este:
Código PHP:
<?php
class Reloj
{
var $hora = null;
function Reloj()
{
$this->hora = time();
}
function mostrarHora()
{
return date('H:i:s', $this->hora);
}
function mostrarFecha()
{
return date('d/m/Y', $this->hora);
}
}
?>
Queda patente que sin un Getter adecuado, todas las clases que quisieran saber la hora, deberian tener métodos para formatear los datos de $reloj->hora. Lo mismo seria necesario si quisieran actualizar este valor dentro de $Reloj. En cambio, gracias al encapsulamiento, con solo implementar este método dentro de Reloj :
Código PHP:
function reset()
{
$this->hora = time();
}
alcanza. Y los Getters/Setters son la herramienta adecuada para que el encapsulamiento nos sirva para algo.
No es solo por respetar los preceptos de la POO solo porque si.
Saludos.