Bonjour à tous,

Existe t'il un moyen de réaliser l'equivalent d'un DynamixProxy autour d'une Classe ?


Je m'explique, j'ai beaucoup de beans qui me servent de "modèle" (je les passe à une vue qui remplis ces champs sur base de ce bean). Seulement si je veux pouvoir réagir lorsqu'une propriété change dans mon bean je dois mettre en place le mécanisme des "PropertyChange" et bien que ce soit facile à mettre en place sa prend parfois du temps et surtout ça charge mon bean de tout un business dont'il n'a pas besoin.

La solution serait de faire quelque chose du style :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
User user = new User("Super", "Man");
BeanModel model = new BeanModel(user);
/* model offre toutes les méthodes de la classe User et envoie 
 * des PropertyChangeEvents lorsque qu'une propriété est changée 
 * via un "setter" */
Il y à bien sur la solution du DynamicProxy mais elle m'oblige à travailler avec une Interface hors mon bean n'est pas une Interface et je ne peux pas tout remplacer. (http://java.sun.com/j2se/1.3/docs/gu...ion/proxy.html)
Il y à aussi cglib qui permet ce genre de chose mais je suis obligé de passer par une "Factory" pour obtenir mon bean (http://cglib.sourceforge.net/xref/samples/Beans.html)
Il y à peut-être aussi les DynaBeans d'Apache mais il faut accéder au propriétés via des String et je ne veux pas ça. Je veux que mon Modèle déclare les mêmes méthodes et fonctionne comme le Bean enrobé, juste qu'il rajoute un aspect.
Il y à aussi la POA mais je ne peux pas encore ajouter un Framework et de toutes façons, je serais surement obligé de passer également par une Factory pour obtenir mon Bean.


Je fais donc appel à vous pour rechercher une solution élégante qui me permettrais de faire un wrapper sur un bean de manière dynamique.

Merci