Hello, ben dis donc, quelle réponse pour une simple question. :)
Merci à toi en tout cas !

Donc avant de lire tes liens, je pose mon code et reformule un peu mon  
speech.

J'utilise en effet l'architecure MVC ou quelque chose de similaire.
Pour chaque module, j'ai une ou plusieurs vues, un controller et un  
model.
Mes controllers communiquent entre via un singleton, appellé  
Navigator. (Si j'ai bien compris ce que tu m'as dit, il faudrait mieux  
avoir un FrontCrontroller qui contient une référence de chaque  
controller ?)
Et donc, par exemple mon controller Arnold (ArnoldController) va  
notifier BernardController de cette façon :

sur ArnoldController ;
Navigator.instance.dispatchEvent(new  
NavigatorEvent(NavigatorEvent.SALUT));

sur BernardController :
Navigator 
.instance.addEventListener(NavigatorEvent.SALUT,listenerHandler);

Mais ArnoldController utilise un vo (RobertVO), ainsi que  
BernardController.
Ainsi ma question était, comment envoyé RobertVO à BernadController ?

1) via la propriété data:Object de NavigatorEvent
2) utilisé un singleton qui stocke mon objet
3) ?

Voilà, je m'en vais feuilleter tes documents maintenant.
Merci bien en tout cas !

++


Le 11 mars 09 à 18:25, ekameleon a écrit :

> Hello :)
>
> Tu aurais des petits exemples de code ? Car là c'est un peu flou  
> tout ce que tu dis :)
>
> Tu nous parles de singleton, de module, etc... c'est pas forcément  
> super clair ;)
>
> Pour ma part j'utilise un FrontController dans mes applications et  
> un dispatcher d'événement global avec une notion de channel pour  
> lier les 2 :
>
> http://code.google.com/p/maashaack/wiki/TutorialsEvents_multi
> http://code.google.com/p/maashaack/wiki/ 
> TutorialsEvents_frontcontroller
>
> Du coup j'ai la possibilité d'échanger des événements facilement  
> vers des controller/eventlistener simple via l'interface  
> EventListener basée sur les normes du event model W3C :
>
> http://code.google.com/p/maashaack/wiki/TutorialsEvents_intro
>
> Du coup... dans tout ce que tu dis au dessus faut cerner la notion  
> de MVC (Design Pattern Model/View/Controller) et du coup si je peux  
> considérer que les vues de ton application c'est les "modules" et  
> les données devront être stockées dans un ou des modèles, suffira  
> ensuite de les mettre en relation via un FrontController simple pour  
> des types d'événements spécialisés.
>
> Bref, pour résumer :
>
> 1 - tu nous montres pas de code d'exemple sur ce que tu fais (pas  
> besoin de tout ton code, pas besoin de tout nous mettre sur le FCNG  
> non plus car cela  ne sera pas lisible.. un petit envoi de fichier  
> avec un lien ou un mail ce sera très bien)
>
> 2 - Méfie toi de la notion de singleton... cela devient vite un anti- 
> pattern d'en mettre partout dans une application.
>
> Pour ma part les singletons je les gère via une fabrique et  
> j'utilise à 99% maintenant le Design Pattern d'injection de  
> dépendance pour éviter les soucis et mettre les objets en relations  
> les uns avec les autres :)
>
> Je t'invite à lire le premier chapitre de mon ebook (en cours  
> d'écriture) sur le sujet :
>
> http://www.ekameleon.net/blog/index.php?post/2008/07/21/A-Design-Pattern-dinversion-de-controle-Generalites
>
> Ensuite je te conseille de lire un peu des articles sur le Design  
> Pattern MVC en restant bien ouvert sur ce concept... car il y a des  
> tas de manières de l'utiliser et de l'implémenter et au final il  
> faut avant tout bien cerner le concept...
>
> Exemple :
>
> http://www.ekameleon.net/blog/index.php?post/2006/12/22/56-vegas-tutorial-03-design-pattern-mvc-with-frontcontroller
> http://www.ekameleon.net/blog/index.php?post/2006/12/22/57-vegas-tutorial-03-design-pattern-mvc-with-frontcontroller-partie2
>
> Les exemples ci dessus sont en AS2 mais sont applicables sans soucis  
> en AS3 :)
>
> Maintenant je te conseille de regarder rapidement l'exemple AS3 de  
> MVC avec un FrontController sur mon google code :
>
> http://code.google.com/p/andromed-as/source/browse/#svn/trunk/AS3/ 
> trunk/bin/tutorials/andromeda/mvc
>
> Il n'y a pas beaucoup de classe est si tu prends un peu de temps  
> pour lire la doc au dessus et pour regarder le code de cet exemple  
> tu verras que c'est assez simple à implémenter :)
>
> L'idée est donc de centraliser les informations (événements) et de  
> les faire passer dans un front controller pour les rediriger vers  
> des controllers simples et spécialisés pour chaque action importante  
> dans ton application. Ainsi tu as la possibilité d'éviter au MAXIMUM  
> les dépendances entre tes objets (vues, modèles, données...)
>
> Pas assez de temps pour rentrer dans le détail :) Si tu veux de  
> l'aide faut nous montrer du vrai code sinon pour le moment on peut  
> te donner que des idées et de la lecture ;)
>
> EKA+ :)
>
> Le 11 mars 2009 18:10, Gwenn Guihal <[email protected]> a écrit :
> Hello,
>
> Je développe actuellement une application en Flash, qui se veut le  
> plus modulaire possible.
> Donc j'ai des modules qui communique entre eux via des événements  
> personnalisés, ces événements sont dispatchés via un singleton  
> accessible par chaque module.
>
> Je me posais une question:
>
> J'ai un module qui modifie un objet.
> Je dispatch un event, pour dire à un autre module de réaliser une  
> action en utilisant cet objet.
>
> La question est :
> -> Vaut mieux passer cet objet dans mon event, via un paramètre  
> "data:Object" ?
> -> Ou bien stocker cet objet dans un singleton afin qu'il soit  
> accessible par mes deux modules ?
> -> Une autre solution super classe ?
>
> Merci d'avance,
>
> ++
>
> Gwenn
>
>
>
>
>
>
>
>
>
>
> >


--~--~---------~--~----~------------~-------~--~----~
Vous avez reçu ce message, car vous êtes abonné au groupe Groupe "FCNG" de 
Google Groupes.
 Pour transmettre des messages à ce groupe, envoyez un e-mail à 
l'adresse [email protected]
 Pour résilier votre abonnement à ce groupe, envoyez un e-mail à 
l'adresse [email protected]
 Pour afficher d'autres options, visitez ce groupe à l'adresse 
http://groups.google.com/group/FCNG?hl=fr
-~----------~----~----~----~------~----~------~--~---

Répondre à