MVC et update(Observable S, Object o)
Bonjour à tous!
voila mon soucis: je dois concevoir une application ("jtunes") qui est un lecteur de musique mp3
voila à quoi ressemble l'appli (tout n'est pas implémenté) :
http://i26.servimg.com/u/f26/12/16/41/04/scr110.png
mini legende:
1 -> Jlist qui liste les fichiers au format mp3 du fichier séléctionné
2 -> JTable qui listera la playlist actuelle
3 -> les boutons de lecture etc...
mon appli respecte donc le pattern MVC (enfin j'essai;))
pour résumer j'ai donc:
- une vue (PlayerView.java que vous voyez)
- un controller
- un modele
le modele contient TOUTES les données necessaires au fonctionnement de l'appli dans un seul fichier model.java.
Mon probleme c'est que lorsque le modele change d'etat et notifie les observateurs:
Code:
1 2 3 4
|
setChanged();
notifyObservers(o);
clearChanged(); |
ma vue va appeler la methode update() ce qui aura pour effet de mettre à jours TOUS les JComponents.
vous vous en doutez je voudrais éviter cela et pouvoir ne mettre a jour que ce qui est necessaire.
- j'avais comme 1ere solution de rajouter à toutes les methodes un argument Object arg qui serait le JComponent responsable de l'appel mais j'ai l'impression que ce serait du "bidouillage"
- en 2 je voulais créer 3 modeles différents (et donc 3 controllers) mais je me dis que le pattern observer étant une relation d'un modele à plusieurs vues, cela reviendrait à faire exactement l'inverse...
Pourriez vous me donner la meilleure solution pour avoir une MAJ efficace?
je pense que le probleme est simple a resoudre mais jusque la le modele de mes applis etait plus simple et je n'avait pas encore été confronté à ce soucis...
Merci d'avance pour vos réponses:ccool: