ciò che è posto migliore per la registrazione proxy e mediatore nel quadro PureMVC flex?

StackOverflow https://stackoverflow.com/questions/1706600

  •  19-09-2019
  •  | 
  •  

Domanda

Sto usando quadro PureMVC per lo sviluppo di progetto basato flex. La mia domanda è legata a ciò che è il modo migliore per ritardato la registrazione classe proxy e la classe mediatore? Attualmente il comando di avvio sto registrando avvio mediatore.

Il mio codice è:

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

Nel ApplicationFacade.as Io mando notifica al StartupCommand . StartupCommand registri StartupMediator .

Ora la mia domanda:

  1. Quando e dove iscriversi LoginMediator
  2. Quando e dove iscriversi LoginProxy
  3. Quando per inviare la notifica a LoginCommand
  4. Se noi registri LoginMediator e LoginProxy in LoginCommand come         

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

    Ora, se io mando la notifica per LoginCommand più volte allora crea instace multiplo di LoginProxy e LoginMediator . Così come per evitarlo?

È stato utile?

Soluzione

  1. Nel mio startUpCommand posso registrare tutti i mediatori che attualmente hanno vista sul palco. Aspetto di registrare tutti gli altri punti di vista e mediatori fino a quando non sono necessari.

  2. mi iscrivo quasi tutti i proxy nella mia startUpCommand in modo da poter registrare da flashVars e caricare i dati dal server. Per quanto riguarda il tuo LoginProxy mi piacerebbe creare nella tua StartUpCommand per iniziare. Una volta che l'applicazione cresce è possibile spostarlo in un comando che imposta il mediatore di accesso.

Io suggerirei di mettere il codice in un'istruzione switch per assicurare il vostro codice in esecuzione sulla notifica corretta e rimuovendo il comando.

  

public override function execute (notifica: INotification): void {
      interruttore (notification.getName ()) {
      caso AppFacade.START_UP:
    // RIMUOVERE AVVIAMENTO COMANDO
  facade.removeCommand (notification.getName ());
  break;
  }
  }

È inoltre possibile utilizzare il metodo hasProxy sulla facciata per essere sicuri di non si registra due LoginProxies.

  

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top