2008/4/24 Leandro Lucarella <[EMAIL PROTECTED]>:
> Pablo Martín Viva, el 23 de abril a las 23:38 me escribiste:
>  [snip]
>  >    Entiendo que dejar todo publico esta mal, hasta cierto punto porque se
>  >    hace cagadas por eso, pero tampoco tener metodos de acceso a dichos
>  >    atributos hace que se programe mal, hay que saber usarlos como todo.
>
>  Lo de los getters y setters, es para mí, un pedo mental que inventó Java,
>  por ser un lenguaje excesivamente pobre.
>
>  En cualquier lenguaje decente, podés tener lo que comunmente se conoce
>  como "propiedad", que es algo así como sintaxis indistinta/intercambiable
>  para llamar métodos como si fueran atributos, entonces no necesitás andar
>  impregnando todo tu código de getters y setters, usás atributos (a menos
>  que realmente necesites usar una función para hacer alguna validación)
>  porque estás tranquilo que en el futuro podés cambiar tu atributo por un
>  par de funciones y no la *interfaz* de tu clase no cambia.
>
>  Creo que el único lenguaje OO más o menos popular que no soporta esto es
>  Java (sé que, al menos, Pyton, PHP, Ruby, C++, C# y D lo soportan de una
>  forma u otra).
>

de hecho, tener :

class A {
   private int a;

   public void setA(int i) { a = i; }
   public int getA() { return a; }
}

Es lo mismo que

class A {
    public int a;
}

Distinto seria si es necesario guardar el doble del valor asignado,
por ejemplo, donde claramente el segundo ejemplo fallaria por dejar la
responsabilidad al programador, cuando la responsabilidad es de la
clase. Igualmente el setter es una cagada como practica de
programacion, porque el codigo queda feo :)


-- 
--
¡Falta Uno! - http://www.falta-uno.com.ar/
Ricardo Markiewicz

_______________________________________________
Lista de correo Programacion.
[email protected]
http://listas.fi.uba.ar/mailman/listinfo/programacion

Responder a