En este ejemplo que he mandado todas las clases que se instanciarian
dinámicamente con el factory deberian de heredar de FormaBase para poder
tener un conjunto comun de metodos que usar. Como en principio no sabes el
tipo final que te va a devolver el factory puedes usar o una clase base
(probablemente abstracta) o un interface. En este caso Iforma es simplemente
lo que se llama un "marker interface" es decir, no obligaria a implementar
nada, solo se usa para "marcar" una clase como un determinado tipo con el
fin de tenerlo mas ordenado. La clase abstracta es la que tendra (parte de)
la implementacion común.

No se si me he explicado...

Un saludo,

Joseba

> -----Mensaje original-----
> De: [EMAIL PROTECTED] 
> [mailto:[EMAIL PROTECTED] En nombre de Mercenario 
> PHP -Luciano-
> Enviado el: miércoles, 13 de diciembre de 2006 14:15
> Para: Lista dedicada a Actionscript
> Asunto: Re: [ASNativos] crear instancias de clase
> 
> Yo tuve el mismo problema hace un tiempo, necesitaba generar 
> instancias a partir de los datos de un XML.
> Me dijeron, te vendría bien un modelo factoría...
> Aaah...sí...ok...busqué en la web y los blueprints y 
> explicaciones orientadas a JAVA me resultaron complejos de 
> adaptar a AS...(bah, no entendí un pomo)...
> Joseba, es TAN simple como eso?
> De qué iría la Interface IForma? Es una interface genérica 
> para cualquier clase, o es sólo un ejemplo?
> Es una interface de indicador? Sirve para poder usarla cómo 
> tipo de dato?
> NO ENTIEEENDOO!!!
> Ahora, cada clase que necesito generar debe implementar una 
> Interface común?
> Gracias por tanta sabiduría!
> 
> Luciano
> 
> Joseba Alonso escribió:
> > Yo haria algun tipo de factory para esto, primero un 
> interface o clase 
> > base para todas las formas:
> >
> > <code>
> > class FormaBase implements IForma{
> >     // Definir funcionalidad comun  
> > }
> > </code>
> >
> > Luego el factory en si mismo
> >
> > <code>
> > class FormasFactory{
> >     public static function create(name:String):FormaBase{
> >             var instancia = new _global[name]();
> >             if(instancia instanceof FormaBase){
> >                     return instancia;
> >             }
> >             return null;
> >     }
> > }
> > </code>
> >
> > Y luego usarlo
> >
> > <code>
> > var miforma:FormaBase = 
> > FormasFactory.create("com.dominio.formas.Circulo");
> > </code>
> >
> > ¿Te vale eso?
> >
> > Joseba
> >
> >   
> >> -----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
> > -----------------------------------------------------
> >
> >   
> 
> __________________________________________________
> Correo Yahoo!
> Espacio para todos tus mensajes, antivirus y antispam ¡gratis! 
> ¡Abrí tu cuenta ya! - http://correo.yahoo.com.ar
> 
> 
> -----------------------------------------------------
> ASNativos
> www.5dms.com
> subscripciones/desubscripciones
> http://asnativos.5dms.com
> -----------------------------------------------------


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

Responder a