Dans mon application Flex, j'utilise beaucoup les services. J'ai besoin d'eux pour mettre à jour mes données dans l'application, alors appelez-les assez souvent. Actuellement, je mis en œuvre de la manière suivante:AS3: Comment organiser le code, au cas où les services à distance sont appelés
1) Il est un fournisseur de services (classe AMFLoader) 2) et gestionnaire de réponse (classe Responder)
Le code ressemble à ceci:
public function AMFLoader(url:String):void
{
gateway = new NetConnection();
gateway.connect(url);
}
public function callAMFLoader(serviceName:String, param:String, resultHandler:AMFResultHandler):void
{
gateway.addEventListener(IOErrorEvent.IO_ERROR, resultHandler.onIENetError);
gateway.addEventListener(NetStatusEvent.NET_STATUS, resultHandler.onNetStatus);
responder = new Responder(resultHandler.onSuccess, resultHandler.onFalse);
gateway.call(serviceName,responder, param);
}
et Résultat classe de gestionnaire:
public class AMFResultHandler
{
public function AMFResultHandler()
{
}
public function onSuccess(result:*):void
{
trace("Result from basic AMF Result handler on success: " + result);
}
pour faire un appel à un service de base, je tends la classe de gestionnaire de résultats et créer des fonctions personnalisées pour traiter re sultes. Habituellement, sur les dernières étapes, je lie les données reçues du service aux variables globales que j'ai définies dans l'application principale, puis je l'utilise dans d'autres classes.
Actuellement, j'ai remarqué que c'est assez ennuyeux d'utiliser des variables globales, je ne sais pas si c'est un bon style de programmation pour le faire. Par exemple lorsque j'ai essayé de refactoriser mon code, j'ai remarqué qu'il est parfois difficile de comprendre qui et quand (et pourquoi), les données y ont été renseignées.
Peut-être que vous pouvez suggérer un moyen de stocker les données à partir des appels de services. La principale chose que je n'arrive pas à comprendre est que nous ne pouvons pas simplement créer une méthode, par ex. getData, et appelez-le quelque part dans l'application, car appeler le service et stocker les données sont des choses différentes (comme les données sont reçues uniquement sur un événement) ....
Merci d'avance.
Plonger dans ... Alors à bientôt :) J'espère que je m'habituerai à l'utiliser rapidement –