Pregunta

Estoy utilizando el marco PureMVC para el desarrollo de proyecto basado en la flexión. Mi pregunta está relacionada con lo mejor es retardado manera de registrar la clase de proxy y la clase mediador? Actualmente el comando de inicio estoy registrando mediador inicio.

Mi código tiene:

  1. ApplicationFacade.as
  2. StartupCommand.as
  3. StartupMediator.as
  4. LoginCommand.as
  5. LoginMediator.as
  6. LoginProxy.as
  7. LoginView.as

ApplicationFacade.as Estoy enviando una notificación a StartupCommand . StartupCommand registros StartupMediator .

Ahora mi pregunta:

  1. ¿Cuándo y dónde registrar LoginMediator ?
  2. ¿Cuándo y dónde registrar LoginProxy ?
  3. Cuando se desea enviar una notificación a LoginCommand ?
  4. Si los registros LoginMediator y LoginProxy en LoginCommand como         

         public class LoginCommand extends SimpleCommand
    implements ICommand {
        override public function execute(notification:INotification):void
        {
            facade.registerProxy( new LoginProxy() );
         facade.registerMediator( new LoginMediator( app ) );
        } } 

    Ahora bien, si estoy enviando la notificación de LoginCommand varias veces, entonces crea múltiples instace de LoginProxy y LoginMediator . Así que cómo para evitarlo?

¿Fue útil?

Solución

  1. En mi startUpCommand me registro todos los mediadores que actualmente tienen puntos de vista sobre el escenario. Espero para registrar otros puntos de vista y mediadores hasta que se necesiten.

  2. Cómo registro casi todos los servidores proxy en mi startUpCommand para que puedan inscribirse a partir flashVars y cargar datos desde el servidor. En cuanto a su LoginProxy que crearía en su StartUpCommand para empezar. Una vez que su aplicación crece puede moverlo a un comando que establece el Mediador de inicio de sesión.

Yo sugeriría poner su código en una sentencia switch para asegurarse de que su código que se ejecuta en la notificación correcta y eliminar el comando.

  

anular la función pública ejecutar (notificación: INotification): void {
      interruptor (notification.getName ()) {
      AppFacade.START_UP caso:
    // eliminar PUESTA EN MARCHA DE COMANDO
  facade.removeCommand (notification.getName ());
  romper;
  }
  }

También puede utilizar el método hasProxy en la fachada para asegurarse de que no se registra dos LoginProxies.

  

Si (facade.hasProxy (LoginProxy.NAME)) {
         facade.registerProxy ...
  }

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top