Bonjour à tous,
Essayant de mettre en place tant bien que mal une architecture MVC dans mes programmes, j'ai opté pour l'utilisation du pattern Observateur pour la mise à jour de la vue.
Ainsi mes classe appartenant au modèle seront observables.
Mais mon problème est du côté de l'observateur, dans l'identification des données qui ont étés modifiées et qu'il faut mettre à jour dans la vue. Je m'explique...
Prenons une classe du modèle qui contient 5 données affichées dans la vue.
Une des données est modifiée et la classe notifie ses observateurs qu'il y a un changement.
Le problème est que les observateurs ne savent pas quelle donnée a été modifiée et donc laquelle mettre à jour ?
Je vois 2 solutions pour gérer cela :
- Soit tout rafraichir sans distinction : pour les vues complexes, contenant notamment des listes et des tables, cela peut être couteux en temps machine, et puis c'est pas très "propre".
- Soit avoir dans la classe observée un booléen pour chaque donnée modifiable et le positionner à vrai quand la donnée change, ainsi la vue teste chaque booléen pour savoir quelle donnée doit être rafraichie : Cette solution est moins couteuse en temps mais lourde à cause de la présence et de la gestion d'un booléen pour chaque donnée observable.
Les exemples que j'ai pu trouver sont triviaux et ne gère à chaque fois qu'une seule donnée. La question de plusieurs données observées dans une même classe ne se posait donc pas.
Avez-vous une solution à mon problème ? Dans une meilleure utilisation du pattern Observateur ou dans l'utilisation d'une autre méthode pour découpler au maximum le traitement des données et leur représentation...?
Merci par avance pour vos réponses.
Partager