Sixto, Manu, si estoy de acuerdo en que el uso de los getter setters es
esencial en determinadas tareas. Muy util en muchos casos, que te hayudan a
no tener la clase llena de setMiPropiedad() y getMiPropiedad(). Pero ,
�realmente es necesario que todas las propiedades que quieras hacer publicas
deben ser asi? Hablo de 20 o mas. Pero pongamos el caso de que sea solo 1:

<code>

class Foo{
    public var Bar:String;
}

</code>

perfecto, el interface esta en la propiedad 'Bar' que es lo que otras clases
pueden usar. Ahora, mas tarde de repente voy a sacar Foo v2 (mola el nombre
eh? xD) en la que Bar tiene que llevar una comprobacion ok?

<code>

class Foo{
    private var __bar:String;
    public function set Bar(val:String){
        // comprobacion
        if(val.Length==0){
            throw new Error("La cadena no puede estar vacia");
        }
        bar = val;
    }
    public function get Bar():String{
        return __bar;
    }
}
</code>

Como ves, he modificado la clase. La he hecho un poco mas solida lanzando
una excepcion en caso de que la cadena est� vacia. Pero el Interface no ha
cambiado, sigue siendo el mismo. Solo que cuando escrib� la version 1 me
ahorre duplicar la propiedad (doble de memoria para los datos) y
cuatriplicar el codigo. Porque esta muy bien pensar en la extensibilidad en
un futuro. Pero nadie te asegura que haya version 2, y si la hay, la puedes
adaptar sin modificiar su interface. �Porque hacerlas todas accessors desde
un principio?


P.D:Manu>>
Algui�n podr�a pensar: "total, mi megaclase
tiene un coupling de la ostia"

x�DDDDDDDDDDDDD

----- Original Message ----- 
From: "Manuel de la Higuera" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Wednesday, November 05, 2003 1:54 PM
Subject: RE: [ASNativos] Accesors


> �Pero hacerlas todas _siempre_?�Que os parece?

Eso es una cuesti�n personal. Si todas son susceptibles de ser
modificadas creo que es importante hacerlo. Y en principio todas lo son.

Normalmente hago lo siguiente: si el uso del miembro es interno y el
valor del miembro en cuesti�n es independiente de las relaciones de la
clase con otras evito el uso de get/set (porque es innecesario).

Si no tengo claro que ese miembro pueda compartirse con otras clases
--suele ser lo m�s com�n-- entonces utilizo un accessor.

<!-------------------------------
Lista ASNativos:
subscripciones/desubscripciones
http://www.sidedev.net/asnativos
-------------------------------->

<!-------------------------------
Lista ASNativos:
subscripciones/desubscripciones
http://www.sidedev.net/asnativos
-------------------------------->

Responder a