Ver Mensaje Individual
  #16 (permalink)  
Antiguo 09/05/2004, 19:25
Avatar de Webstudio
Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 22 años, 5 meses
Puntos: 69
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.
__________________
Tutoriales Photoshop | Web-Studio.com.ar
Artículos PHP | ZonaPHP.com