Ver Mensaje Individual
  #25 (permalink)  
Antiguo 26/01/2009, 16:03
Avatar de enriqueplace
enriqueplace
 
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 19 años
Puntos: 32
Respuesta: Duda: Como inicializar propiedades públicas (filtradas) de un objeto

Ten cuidado con la edición de las respuestas, me llegó por email una y de casualidad entré a este hilo para verlo y vi que le agregaste preguntas.

Cita:
A manera de ejemplo y creo ya que para terminar. Digamos que en un diseño, en donde quiero acceder a datos de un Modelo para mostrarlos en un formulario. ¿Podria utilizar los metodos getter para leer cada uno de ellos (construyendolos como métodos sencillos)?
No eres claro... para acceder "datos"? Por lo que vengo explicando, getter/setter se aplica a atributos, si haces ambos, generas el mismo efecto que un atributo público.

Que no es lo mismo que si tienes "métodos comunes" que inician con la preposición "get" o "set" (aunque se estile que todo lo que sea "set" o "get" es un método getter / setter, pero no necesariamente es así).

Por ejemplo

Código PHP:
class Persona
{
   private 
$_fechaNacimiento;

   public function 
__construct($fechaNacimiento)
   {
      
$this->_fechaNacimiento $fechaNacimiento;
   }
   public function 
getEdad()
   {
       
/* calcular edad */

      
return $edad;
   }


Aquí tenemos un "método común" getEdad pero no existe un atributo "edad", tampoco estoy usando un método setter, ya que creo el objeto pasando todos los datos que necesita a su constructor.

Distinto sería si tuvieras un método getFechaNacimiento():


Código PHP:
class Persona
{
   private 
$_fechaNacimiento;

   public function 
getFechaNacimiento()
   {
      return 
$this->_fechaNacimiento;
   }


¿Se ve la sutil diferencia? Lo que se sugiere que es no crear setter/getter a diestra y siniestra para todos los atributos de una clase. En lo posible creen solo métodos que "esconden" el detalle del trabajo con los atributos y se concentran en resolver los problemas concretos. No expongan innecesariamente el interior del objeto.

Cita:
Que pena, ya debes estar cansado de repetir tantas cosas... Deberia haber una especie de FAQ de estos conceptos bien documentados para remitirnos todos ahi cuando tengamos dudas o sencillamente para no estar preguntando lo mismo todas las veces.
Mmm.. una forma es usar el buscador del foro, otra, hay un faq, pero estos temas a veces son muy largos de explicar y surgen discusiones al respecto, la otra, esperar que termine de escribir mi libro
__________________
Blog phpsenior.com Cursos a Distancia surforce.com

Última edición por enriqueplace; 27/01/2009 a las 06:27