Bonjour à tous,
je me trouve face à un soucis auquel j'ai bien une idée pour le résoudre, mais j'aimerai votre avis.
Supposons un DAO avec une méthode
Qui se connecte à une BDD, et peuple la liste à partir d'une table.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 List<Individu> findAll();
Puis une couche BR (Business Rules), avec une méthode:
Qui retourne simplement la liste retourné par la méthode findAll du DAO précédent.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 List<Individu> findAllIndividu();
Et enfin, une fenêtre (JForm) affichant dans un tableau (JTable) le résultat de la méthode findAllIndividu du BR.
Jusque là, pas de grande difficulté.
Maintenant, j'aimerai affiché en bas de l'écran l'état d'avancement du chargement de la liste, avec un message de ce style:
x individus chargé(s) - Avec x variant de 0 au nombre d'individu dans la liste, dynamiquement.
Comment feriez-vous cela en gardant une bonne séparation des couches ?
Car dans mon cas, c'est la couche DAO qui impacte sur ce que la Vue affiche !
La solution à laquelle j'ai pensé, c'est d'utiliser les Listeners, et créer par exemple un CountListener - ayant une méthode
implémenté par le Controler, qui a chaque appel de cette méthode mettra le Model à jour.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 void countUpdated(int x);
Or, il faudra faire cela dans la couche DAO, pour prévenir la couche BR. Puis le faire dans la couche BR, pour enfin prévenir le controler... Ca fait pas mal de boulot pour "pas grand chose" !?
L'autre idée que j'ai, est de passé le Model à la couche BR, qui le repasse à la couche DAO, qui elle met à jour le nombre de donnée chargé à chaque itération directement dans le Model. Mais maintenant, la couche DAO fait autre chose qu'accéder aux données :'(
Qu'en pensez vous ?
Partager