Salut,
Je me pose une question... donc je vous en fait part
Imaginons une application composée d'un modèle et d'une vue (/controlleur).
Le modèle contient des objets de type EventListenerList de manière à pouvoir être écouté.
Supposons que nous souhaitons proposer 2 services par sérialisation :
- sérialiser tout le modèle pour le stocker dans un fichier ;
- sérialiser toute l'application pour récupérer l'état "actuel" par désérialisation.
Si on déclare EventListenerList transient, on ne peut pas réaliser le 2e service.
Si on ne le déclare pas transient, le premier service ne donnera pas uniquement le modèle... mais également les vues qui l'observent...
Comment faire alors?
Une solution à laquelle je pense, c'est lors de la sérialisation du modèle uniquement, virer tous les écouteurs, sérialiser, et remettre tous les écouteurs... Mais cela entraîne des problèmes de visibilité (il ne faut pas pouvoir virer tous les écouteurs de l'extérieur).
Avez-vous une idée?
NB: ce n'est pas une application à réaliser, c'est juste pour la "conception théorique".
Partager