Buenas! ------ Hilo relacionado con un hilo anterior (instanciar clases dinamicamente) ---------
Gracias a vuestras sujerencias estoy pensando y haciendo pruebas sobre la implementación de un patron AbstractFactory en un framework propio, y tengo algunas dudas. Lo voy a aplicar, ademas de al tema de los modulos, comentado en el otro hilo, al asunto de los controles habituales: Control, Boton, ScrollBar, Form, Lista, BotonLista, Menu, BotonMenu, etc (Todos derivan directa o indirectamente de la clase Control) El AbstractFactory se encargará de definir las funciones 'createXxxx' para cada control del framework, y en principio pensaba implementarlo como una clase base, con implementacion de las funciones, que se encarguen de instanciar las clases estandar mencionadas antes. Y luego estaran los ConcreteFactory propios de cada portal. Portal creado sobre el framework base. Por ejemplo menganitoFactory, y habrá clases derivadas de controles segun necesidad de personalizacion en ese portal, por ejem: menganitoBoton. La funcion createBoton del menganitoFactory creará un menganitoBoton. Bueno, esto ya lo sabeis de sobra, pero ahora bienen mis dudas: ¿Como implemento/instancio los Factory? He probado con un singleton, disponible globalmente, con el que solo tengo que hacer: // Factory es Singleton var factory:Factory = Factory.getFactory(); var _tb:Boton = factory.createBoton(.....); Pero el singleton es clase Factory, y tendria que ser menganitoFactory en el portal concreto. ¿Tengo que instanciar un menganitoFactory y pasarselo al Singleton Factory, para que lo devuelva con la función getFactory()? ¿Se pueden derivar clases de una clase Singleton? ¿O me estoy liando y no deberia usar un singleton?. Si no uso un singleton, tendria que definir una manera para que todos los 'Clientes' ( los controles que usan el factory, con composicion con otros controles, por ejem, Menu, con BotonMenu, etc), tengan acceso a la instancia del Factory. No se si me equivoco, pero tengo entendido que es mala practica OOP el poner en todos los controles referencias a una instancia 'superior' (que pueda ser el factory directamente, o el 'mainForm', o el 'App'..). Porque en los ejemplos de AbstractFactory suelen pasar el factory como parametro, pero eso no me cuadra mucho con lo que tengo ya implementado. ¿O igual deberia usar un Singleton global, como el que uso: 'Aplicacion', e incluirle como miembro al factory, siendo del tipo concreto de Factory correspondiente al portal concreto? Perdon otra vez por la chapa! Si teneis alguna sugerencia se agradece mucho, Edu-eemece2---------------------------------- Lista ASNativos:[email protected] http://www.5dms.com/listas ----------------------------------

