[lowRA] - Owner, la notion de plugin.
Par Laurent Deketelaere le dimanche, janvier 13 2008, 19:01 - Flash plateforme - Lien permanent
Bonjour
Je pense que je n'ai plus besoin de convaincre qui que ce soit sur l'intérêt d'utiliser une structure MVC dans le développement d'une application.
PixLib permet de mettre en place une structure MVC + FrontController de manière global. C'est vraiment puissant, mais cette solution à ses limites. Prenons le cas où l'on charge plusieurs application "pixLib" dans un même site, on se retrouve avec des conflits entre les différentes classes global, le même type de souci que l'on a quand on utilise le ciblage via le _root + des loadMovie(). Pour contourner ce problème chacun a mis en place sa propre solution.
Avec lowRA se souci a disparu!
Owner, une histoire de channel
Si vous avez utilisez les channels dans pixLib vous pouvez directement passer au point suivant.
Dans pixLib on a vu apparaître la logique de Channel dans la classe Logger. L'idée du channel était d'émettre les messages de log sur différentes fréquences, et de pouvoir s'abonner sur une, plusieurs ou toutes les fréquences.
[actionscript] var filtreChannel : LogChannel = new LogChannel("FILTRE"); Logger.getInstance().addLogListener( LuminicTracer.getInstance(), filtreChannel); Logger.LOG("pif", LogLevel.INFO, filtreChannel); Logger.LOG("paf", LogLevel.INFO);
Avec cette exemple, on ne recevra que le message "pif" et non "paf" car le loggueur est uniquement abonné aux messages qui sont émis sur le channel LogChannel("FILTRE").
Un plugin == un owner == un channel
Dans lowRA, on a maintenant la possibilité de définir un channel, appelé owner, pour chaque structure MVC.
ce qui donne :
[actionscript] var monModel : Model = new Model(owner, name); // extends AbstractModel ModelLocator.getInstance(owner).getModel(name); // récupère l'instance de monModel var maVue : View = new View(owner, name); // extends AbstractView ViewLocator.getInstance(owner).getView(name); // récupère l'instance de maVue
Plus de souci de scoop lors que l'on charge plusieurs structures MVC+FrontController global, car chaque plugin a son propre owner (channel).
La suite au prochaine épisode.
Commentaires
décidément, t'as un tick avec le FT, tu l'as encore écrit à la fin
je les ai écris en même temps. :p
merci