Efectivamente, tienes razón en que lo importante es el concepto de
programación orientada a objetos, y que siempre es mejor el evitar el acceso
directo a propiedades de objetos. 

La discusión, al menos por mi parte, no era sobre cómo deben comunicarse las
clases, o cómo asignar en una clase referencias a otra, sino sobre la
mentalidad con la de debemos atacar determinados problemas que se nos
presentan.

En lo que no estoy de acuerdo es en utilizar todos los lenguajes igual (
aunque tampoco creo que sea lo que tú dices ). Si bien una cierta "base"
conceptual de POO es, evidentemente, buena para poder cambiar de un lenguaje
a otro, cada lenguaje y cada entorno tiene sus ventajas e inconvenientes
sobre otros. Saber utilizar esas ventajas también es importante.

Actionscript es un lenguaje mucho más relajado en muchos aspectos que Java o
C#, y la orientación a objetos no es tan fuerte. Eso siempre ha sido una
ventaja para nosotros, no la dejemos de lado.


César Tardáguila
[EMAIL PROTECTED]

-----Mensaje original-----
De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] En nombre
de David Serrano
Enviado el: sábado, 29 de mayo de 2004 13:00
Para: [EMAIL PROTECTED]
Asunto: RE: [ASNativos] [AS2] Clase carga, LoadVars

Bueno, después de leer durante 1 hora todos los posts de este hilo, creo que
es conveniente que intentemos aclarar o posicionarse respecto a  algunos
conceptos.

He leído que no es ilegal acceder a los miembros de una clase de forma
dinámica en Flash. Bueno, creo que esto, aun no siendo ilegal no es bueno ni
sigue el paradigma de la OOP. Creo que es mejor dejar claro este concepto a
la gente de la lista porque puede llegar a producir confusiones. Es verdad
que cada uno tiene una forma de programar y una forma de analizar, pero lo
que uno haga no significa que sea bueno o no.

Hay que tener en cuenta uno de los principios relativos a la OOP:

1) Un objeto debe ser responsable de sí mismo.

2) La encapsulación, entiende al objeto como  "Black Box" o caja negra,
donde sus propiedades y métodos no son accesibles directamente desde otro
ámbito o clase.

Bien, siguiendo el segundo principio de la OOP, flash como lenguaje
orientado a objetos sigue o debe seguir este paradigma. No es que sea
obligatorio, pero si recomendable y aceptado por la mayoría. Si como se
dice, Flash permite acceder y crear directamente atributos y métodos de
clase, no es recomendable hacerlo, y voy a explicar el porqué:

Supongamos, que accedemos directamente a las propiedades (no a través de los
accesors o setter/setter). Si la próxima versión de Flash no lo permitiera
(como es muy posible que sea el caso), este código quedaría obsoleto y
debería refactorizarse, perdiendo una de las ventajas de la OOP, que es la
reutilización.

Además, hay que tener en cuenta, que si bien, flash admite variables
privadas y publicas, no se comportan como tal (como cualquier lenguaje OOP),
ya que si fuera así, no te permitiría acceder y modificar las propiedades
tan fácilmente, y el compilador daría error.


Para finalizar me gustaría comentar que lo importante no es saber programar
flash, sino saber programar en programación orientada a objetos, ya que esto
permite poder programar en cualquier lenguaje que siga el paradigma sin
importar su sintaxis, y permitiendo aprovechar su potencia en un 100%.


También iba a comentar el tema de asociación-composición, pero Xavi lo ha
comentado muy bien y tampoco es cuestión de rizar el rizo.


Un saludo.

David Serrano.

-----Mensaje original-----
De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] En nombre
de Cesar Tardaguila Enviado el: viernes, 28 de mayo de 2004 10:11
Para: [EMAIL PROTECTED]
Asunto: RE: [ASNativos] [AS2] Clase carga, LoadVars

Oiga, Sr., su nombre me suena! ( levantando las cejas mientras masco un puro
)

Es que es viernes.... 


Cesar Tardaguila
[EMAIL PROTECTED]

-----Mensaje original-----
De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] En nombre
de Javier Tardáguila Enviado el: viernes, 28 de mayo de 2004 9:48
Para: [EMAIL PROTECTED]
Asunto: Re: [ASNativos] [AS2] Clase carga, LoadVars

Cierto,
yo estoy leyendo esto por encima porque ando de curro que no tengo tiempo ni
para ir a mear, pero en cuanto pueda me voy a los archivos y me saco toda la
hilera de mensajes.

Por cierto, ya se que esta es una lista seria, pero respondiendo a esta
parte de tu mensaje:

 "De todo esto deduzco que:
 Si La Clase tiene un miembro que apunta a otra clase, pero esta segunda
clase no apunta a La Clase, la agregación es unidireccional. (La Clase usa o
puede usar otra clase para lo que le interese)  Si La Clase tiene un miembro
que apunta a otra clase, y esta segunda clase  tiene un miembro que apunta a
La Clase, la agregación es bidireccional."

lo siento, pero si no lo digo reviento.
Si la parte contratante de la primera parte de la clase, contrata a la parte
contratante de la segunda parte de la clase.......( si es que los hermanos
Marx eran unos visionarios ) Bueno un poquito de humor. Que me perdonen los
administradores.

Un saludo.



> Cesar, Sixto, Xavi, me alegra haber provocado esta discusión tan 
> fructífera para los que nos enteramos poco o nada de OOP (en AS2 o en 
> lo que sea, que algo tengo claro ya, el lenguaje es lo de menos, el 
> análisis es lo importante).
>
> Resumo unos cuantos conceptos para aclarar mis ideas y para que me 
> corrijáis si me equivoco y tenéis tiempo y humor:
>
> - Relación HAS-A de composición:
> Un miembro de La Clase instancia otra clase (el dichoso owner, que 
> contendría la instancia de la otra clase). Creo que a esto os referís 
> como encapsular una clase en otra, pero no lo tengo claro: Yo por 
> encapsular entendía hacer que un objeto sea funcional en sí mismo, sin
dependencias.
> Sixto habla de "agregación", y dice que puede ser uni o bidireccional, 
> y que esta última forma implica que un miembro de la clase agregada 
> apunte a la clase que la agrega, lo cual, creo, rompería la 
> encapsulación tal y como yo la entendía (o sea, seguramente mal).
>
> De todo esto deduzco que:
> Si La Clase tiene un miembro que apunta a otra clase, pero esta 
> segunda clase no apunta a La Clase, la agregación es unidireccional.
> (La Clase usa o puede usar otra clase para lo que le interese) Si La 
> Clase tiene un miembro que apunta a otra clase, y esta segunda clase 
> tiene un miembro que apunta a La Clase, la agregación es bidireccional.
> (Ambas clases están vinculadas la una a la otra, esto no lo entiendo, 
> o no le veo la utilidad, bueno, la utilidad sí, pero creo que rompe el 
> paradigma OOP).
>
> Por aquí entremedio salen los Listeners, que se supone son el 
> mecanismo de intercambio de información entre objetos (Cuando yo 
> cambio, te aviso si te has registrado a mis cambios). Y ya me pierdo 
> totalmente. Si se supone que son el mecanismo de interrelación ¿qué 
> sentido tiene la agragación bidireccional (otra vez), si sin 
> referenciarse
pueden comunicarse?
>
> - Relación IS-A de herencia
> La Clase extiende otra clase para añadirle funcionalidad. Que 
> sencillito suena esto ahora 8-).
>
> Otra cosa que me ha quedado clara es que cada proyecto requerirá de 
> una, otra o ambas metodologías (porque esto son metodologías, ¿no?:
> modos de actuación frente a un problema concreto). Así que no os 
> peguéis 8-)
>
> Cada día más confuso, espero que santo Moock me ilumine pronto.
>
> Paulo.
>
>
>
>
> ----------------------------------
> Lista ASNativos:[EMAIL PROTECTED]
> http://www.5dms.com/listas
> ----------------------------------
>


--
Javier Tardáguila
www.design-nation.net
www.design-nation.net/es ( blog en castellano ) www.design-nation.net/en (
english blog ) [EMAIL PROTECTED]
[EMAIL PROTECTED]
----------------------------------
Lista ASNativos:[EMAIL PROTECTED]
http://www.5dms.com/listas
----------------------------------


----------------------------------
Lista ASNativos:[EMAIL PROTECTED]
http://www.5dms.com/listas
----------------------------------

----------------------------------
Lista ASNativos:[EMAIL PROTECTED]
http://www.5dms.com/listas
----------------------------------


----------------------------------
Lista ASNativos:[EMAIL PROTECTED]
http://www.5dms.com/listas
----------------------------------

Responder a