Umm... es que yo no veo que le estemos quitando responsabilidad al
factory. Quicir, lo que estamos haciendo es crear la instancia
dinamicamente _dentro_ del factory en lugar de hacerlo con un switch.
O esa es la idea vamos.

Mi caso de uso es un VideoPlayer con distintos skins. Esos skins
(elementos graficos y vista especifica para manejarlos) estan
compilados en un swf que se carga dinamicamente.

Luego la instancia de la vista (del factory) se crea dinamicamente en
funcion de un parametro en el xml. Eso no quiere decir que se haga
fuera de la factoria, solo que no se utiliza un switch y, por lo
tanto, no hace falta recompilar.

Sin animo de polemizar!!!! :D

On 12/13/06, Manuel de la Higuera <[EMAIL PROTECTED]> wrote:
> En la segunda implementación propuesta se utiliza un número para todo el 
> proceso --esto es, sólo hay que 'recompilar' el Factory--. Además, ¿no 
> tendrías que hacerlo también si cambia la clase que metes en _global?
>
> Es una cuestión de responsabilidad. Es el Factory el responsable último de la 
> creación de la instancia. De hecho, una de las motivaciones de crear un 
> Factory es la de favorecer la extensibilidad y la mantenibilidad de las 
> instancias.
>
> M.
>
>
> > -----Mensaje original-----
> > De: [EMAIL PROTECTED]
> > [mailto:[EMAIL PROTECTED] En nombre de Zárate
> > Enviado el: miércoles, 13 de diciembre de 2006 17:38
> > Para: Lista dedicada a Actionscript
> > Asunto: Re: [ASNativos] crear instancias de clase
> >
> > La idea es conseguir las instancias 100% dinamicamente
> > (normalmente basado en parametros por xml o FlashVars) y
> > poder agregar nuevos tipos al factory sin tener que
> > recompilar nada. No es que sea muy limpio, pero en ciertas
> > ocasiones es util.
> >
> > Yo no se hacerlo de otra forma sin recurrir a la
> > implementacion del factory que propones. Que es perfectamente
> > valida, por otra parte.
> >
> > Salud!
> >
> > On 12/13/06, Manuel de la Higuera <[EMAIL PROTECTED]> wrote:
> > > Sinceramente, no entiendo cuál es el motivo de usar el
> > namespace de la clase para obtener una instancia de la misma.
> > >
> > > En este punto, es mucho más versátil pasar el constructor a
> > la función y que sea ella la que cree la instancia (se
> > entiende que debe hacer algo más que crear una instancia,
> > ¿verdad?). Esto funcionará también para clases prototipadas:
> > >
> > >         function getCustomInstance(customClass:Function) {
> > >            return new customClass();
> > >         }
> > >
> > > En cualquier caso, un factory debería funcionar así:
> > >
> > >         function getCustomInstance(customType:Number) {
> > >            switch(customType) {
> > >               case FOO_TYPE:
> > >                  return new Foo();
> > >               case BAR_TYPE:
> > >                  return new Bar();
> > >               case default:
> > >                  throw new Error();
> > >            }
> > >         }
> > >
> > > ¿0.02 €?
> > >
> > > M.
> > >
> > >
> > > > -----Mensaje original-----
> > > > De: [EMAIL PROTECTED]
> > > > [mailto:[EMAIL PROTECTED] En nombre de Zárate
> > Enviado el:
> > > > miércoles, 13 de diciembre de 2006 16:59
> > > > Para: Lista dedicada a Actionscript
> > > > Asunto: Re: [ASNativos] crear instancias de clase
> > > >
> > > > Gracias Joseba :)
> > > >
> > > > La verdad es que no pongo un RSS porque tampoco es que escriba
> > > > muchos articulos (5 este anyo). Lo que hago es anunciarlos en el
> > > > blog. Pero claro, eso implica que te tragues *todas* las
> > chapas que
> > > > suelto xDD
> > > >
> > > > Y lo de _global[nombre]() creo que no funcionaria, pero a lo mejor
> > > > _global[eval(nombre)]() si. Pero yo diria que _global y
> > eval en la
> > > > misma linea deberia dar error al compilar :D
> > > >
> > > > Salud!
> > > >
> > > > On 12/13/06, Joseba Alonso <[EMAIL PROTECTED]> wrote:
> > > > > Uops!
> > > > >
> > > > > Mirando tu articulo, quizas lo de mi _global[nombre]() es
> > > > > demasiado inocente y ni funcione.
> > > > >
> > > > > Fernando, mirate lo de Zarate que tiene pinta de estar mas
> > > > estudiado
> > > > > :)
> > > > >
> > > > > Un saludo,
> > > > >
> > > > > Joseba
> > > > >
> > > > > > -----Mensaje original-----
> > > > > > De: [EMAIL PROTECTED]
> > > > > > [mailto:[EMAIL PROTECTED] En nombre de Zárate
> > > > Enviado el:
> > > > > > miércoles, 13 de diciembre de 2006 15:01
> > > > > > Para: [EMAIL PROTECTED]; Lista dedicada a
> > > > Actionscript
> > > > > > Asunto: Re: [ASNativos] crear instancias de clase
> > > > > >
> > > > > > He escrito hace poco un par de tutos sobre como
> > hacerlo en Flash:
> > > > > >
> > > > > > http://www.zarate.tv/articulos/instancias-dinamicamente/
> > > > > > http://www.zarate.tv/articulos/cargar-clases-dinamicamente/
> > > > > >
> > > > > > No creo que sea lo mejor del mundo, pero funciona.
> > > > > >
> > > > > > Salud!
> > > > > >
> > > > > > On 12/13/06, Hari Seldon
> > <[EMAIL PROTECTED]> wrote:
> > > > > > >         Lo más elegante es un factory
> > > > > > >
> > > > > > > http://www.javahispano.org/articles.article.action?id=20
> > > > > > >
> > > > > > >         Ahí te viene un ejemplo con figuras inclusive
> > > > > > (vamos, ni hecho
> > > > > > > a medida casi)
> > > > > > >
> > > > > > >         Está en Java, pero no creo que tengas ningún
> > > > > > problema para ver
> > > > > > > la implementación en AS 2.0
> > > > > > >
> > > > > > >         El patrón abstract factory te puede interesar
> > > > > > dependiendo de
> > > > > > > cuánto quieras complicar tu árbol de clases.
> > > > > > >
> > > > > > >
> > > > > >
> > > >
> > http://es.wikipedia.org/wiki/Factory_Method_(patr%C3%B3n_de_dise%C3%
> > > > > > B1
> > > > > > > o)
> > > > > > >
> > > > > >
> > > >
> > http://es.wikipedia.org/wiki/Abstract_Factory_(patr%C3%B3n_de_dise%C
> > > > > > 3%
> > > > > > > B1o)
> > > > > > >
> > > > > > >         Un saludo
> > > > > > >
> > > > > > > *Nota: lo que comenta de crear una u otra figura
> > > > dependiendo del
> > > > > > > número de argumentos, se haría sobrecargando el método (eso
> > > > > > en Java);
> > > > > > > en AS 2.0, sería un poco rollo la misma implementación; por
> > > > > > ello igual
> > > > > > > no es recomendable hacerlo así.
> > > > > > > > -----Mensaje original-----
> > > > > > > > De: [EMAIL PROTECTED]
> > > > > > > > [mailto:[EMAIL PROTECTED] En nombre de fernando
> > > > > > b Enviado
> > > > > > > > el: miércoles, 13 de diciembre de 2006 13:20
> > > > > > > > Para: Lista dedicada a Actionscript
> > > > > > > > Asunto: Re: [ASNativos] crear instancias de clase
> > > > > > > >
> > > > > > > > esto lo quiero hacer pq en futuro lo mismo me
> > > > encuentro con 100
> > > > > > > > tipos de objetos distintos, imaginate un if para este
> > > > tema.....
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > 2006/12/13, fernando b <[EMAIL PROTECTED]>:
> > > > > > > > >
> > > > > > > > > hay esta la historia de esto, me gustaria no tener q
> > > > > > > > comprobarlo...seria
> > > > > > > > > crear una instancia de manera dinamica, he
> > probado a poner
> > > > > > > > en el nombre de
> > > > > > > > > la clase una var conteniendo por ejem. el
> > nombre Cubo, ejem:
> > > > > > > > > var nombreClase = Cubo;
> > > > > > > > > var objeto:interfazObjecto = new nombreClase();
> > y nada, me
> > > > > > > > > gustaria hacer algo parecido.....lo mismo me
> > > > > > > > estoy liando yo
> > > > > > > > > solo, no se....
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > El día 13/12/06, Ivan <[EMAIL PROTECTED]> escribió:
> > > > > > > > > >
> > > > > > > > > > Hola Fernando
> > > > > > > > > > no se si te he entendido bien. Tu cargas un xml y
> > > > > > > > > > generas
> > > > > > > > tantos objetos
> > > > > > > > > > y
> > > > > > > > > > del tipo que te diga el xml no?
> > > > > > > > > > Pues tal como yo lo veo, puedes o bien
> > comprobar de que
> > > > > > > > tipo es una vez
> > > > > > > > > > leido el xml y dependiendo del tipo de nodo.
> > > > > > > > > >
> > > > > > > > > > new Cubo()
> > > > > > > > > > new Bola()
> > > > > > > > > > ...
> > > > > > > > > >
> > > > > > > > > > y una clase para cada una, aunque seguramente
> > > > > > compartiran mucha
> > > > > > > > > > funcionalidad (herencia).
> > > > > > > > > >
> > > > > > > > > > o bien un objeto generico y le pasas un parametro
> > > > > > > > > >
> > > > > > > > > > new Figura("cubo");
> > > > > > > > > > new Figura("Bola");
> > > > > > > > > > ...
> > > > > > > > > >
> > > > > > > > > > Pero en algun sitio tienes que comprobar que tipo de
> > > > > > figura es.
> > > > > > > > > > A mi me gusta mas la primera forma, que luego
> > me resulta
> > > > > > > > mas facil de
> > > > > > > > > > escalar, porque escalará.... :) Un saludo.
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > ----- Original Message -----
> > > > > > > > > > From: "fernando b" <[EMAIL PROTECTED]>
> > > > > > > > > > To: "Lista dedicada a Actionscript" <
> > > > > > > > > > [email protected]>
> > > > > > > > > > Sent: Wednesday, December 13, 2006 12:15 PM
> > > > > > > > > > Subject: [ASNativos] crear instancias de clase
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > hola q tal?, os cuento un pequeño problema q me
> > > > ha surgido...
> > > > > > > > > >
> > > > > > > > > > tengo q desarrollar una aplicacion para mostrar en un
> > > > > > tablero 2D
> > > > > > > > > > diversos objetos q me vienen dados por un xml....
> > > > > > > > > > los objetos en cuestion pueden ser de varios tipos,
> > > > > > bola, cubo o
> > > > > > > > > > triangulo, al pulsar sobre ellos la informacion a
> > > > mostrar es
> > > > > > > > distinta......varia
> > > > > > > > > > segun
> > > > > > > > > > el tipo de objeto
> > > > > > > > > >
> > > > > > > > > > el problema es el siguiente, lo q quiero hacer al
> > > > > > > > > > dibujar
> > > > > > > > la vista es
> > > > > > > > > > crear
> > > > > > > > > > una instancia del objeto en cuestion sin
> > saber cual es,
> > > > > > > > es decir no
> > > > > > > > > > quiero
> > > > > > > > > > comparar el tipo de datos, ejem:
> > > > > > > > > > si es cubo
> > > > > > > > > >     new cubo
> > > > > > > > > > si es bola
> > > > > > > > > >     new bola
> > > > > > > > > > etc....
> > > > > > > > > > me gustaria directamente hacer un new Objeto por
> > > > > > ejemplo.....y q
> > > > > > > > > > directamente me cree el tipo en cuestion, y eso es
> > > > > > > > todo...no se si me he
> > > > > > > > > > explicado bien, un saludo
> > > > > > > > > > -----------------------------------------------------
> > > > > > > > > > ASNativos
> > > > > > > > > > www.5dms.com
> > > > > > > > > > subscripciones/desubscripciones
> > > > > > > > > > http://asnativos.5dms.com
> > > > > > > > > > -----------------------------------------------------
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > -----------------------------------------------------
> > > > > > > > > > ASNativos
> > > > > > > > > > www.5dms.com
> > > > > > > > > > subscripciones/desubscripciones
> > > > > > > > > > http://asnativos.5dms.com
> > > > > > > > > > -----------------------------------------------------
> > > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > --
> > > > > > > > > http://www.jinx.com.es
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > --
> > > > > > > > http://www.jinx.com.es
> > > > > > > > -----------------------------------------------------
> > > > > > > > ASNativos
> > > > > > > > www.5dms.com
> > > > > > > > subscripciones/desubscripciones http://asnativos.5dms.com
> > > > > > > > -----------------------------------------------------
> > > > > > >
> > > > > > >
> > > > > > > -----------------------------------------------------
> > > > > > > ASNativos
> > > > > > > www.5dms.com
> > > > > > > subscripciones/desubscripciones http://asnativos.5dms.com
> > > > > > > -----------------------------------------------------
> > > > > > >
> > > > > >
> > > > > >
> > > > > > --
> > > > > > Juan Delgado - Zárate
> > > > > > http://zarate.tv
> > > > > > http://dandolachapa.com
> > > > > >
> > > > > > -----------------------------------------------------
> > > > > > ASNativos
> > > > > > www.5dms.com
> > > > > > subscripciones/desubscripciones
> > > > > > http://asnativos.5dms.com
> > > > > > -----------------------------------------------------
> > > > >
> > > > >
> > > > > -----------------------------------------------------
> > > > > ASNativos
> > > > > www.5dms.com
> > > > > subscripciones/desubscripciones
> > > > > http://asnativos.5dms.com
> > > > > -----------------------------------------------------
> > > > >
> > > >
> > > >
> > > > --
> > > > Juan Delgado - Zárate
> > > > http://zarate.tv
> > > > http://dandolachapa.com
> > > >
> > > > -----------------------------------------------------
> > > > ASNativos
> > > > www.5dms.com
> > > > subscripciones/desubscripciones
> > > > http://asnativos.5dms.com
> > > > -----------------------------------------------------
> > > >
> > >
> > >
> > > -----------------------------------------------------
> > > ASNativos
> > > www.5dms.com
> > > subscripciones/desubscripciones
> > > http://asnativos.5dms.com
> > > -----------------------------------------------------
> >
> >
> > --
> > Juan Delgado - Zárate
> > http://zarate.tv
> > http://dandolachapa.com
> >
> > -----------------------------------------------------
> > ASNativos
> > www.5dms.com
> > subscripciones/desubscripciones
> > http://asnativos.5dms.com
> > -----------------------------------------------------
> >
>
>
> -----------------------------------------------------
> ASNativos
> www.5dms.com
> subscripciones/desubscripciones
> http://asnativos.5dms.com
> -----------------------------------------------------


-- 
Juan Delgado - Zárate
http://zarate.tv
http://dandolachapa.com

-----------------------------------------------------
ASNativos
www.5dms.com
subscripciones/desubscripciones
http://asnativos.5dms.com
-----------------------------------------------------

Responder a