>>>>> "Sebastien" == Sebastien Cesbron <[EMAIL PROTECTED]> writes:
Sebastien> Salut � tous, J'ai une petite question de design. Je suis Sebastien> en train de r�fl�chir sur une architecture en couches Sebastien> (pour simplifier pr�sentation - m�tier - mapping). Une Sebastien> question que je me pose c'est comment transmettre les Sebastien> infos de mes objets m�tier � ma couche pr�sentation sans Sebastien> permettre � cette derni�re de modifier mes objets m�tier. Sebastien> Avez vous des id�es l� dessus o� des pointeurs vers des Sebastien> articles parlant de cette probl�matique ? Si JAC (http://jac.aopsys.com) �tait fin pr�s pour utilisation en environnement de production, je conseillerai sans h�siter de l'utiliser. Malheureusement, ce n'est pas encore tout � fait le cas. M�me si nous faisons pas mal de progr�s. En ce qui concerne tes probl�mes de couche de pr�sentation, � titre indicatif, voici comment fonctionne celle de JAC. Les vues d'objets sont g�n�r�es automatiquement � partir d'un fichier de configuration "tr�s haut niveau", qui permet de d�finir quelques champs afficher, dans quel ordre, pour quelles m�thodes on veut un bouton,... Ensuite, tout se fait avec des �v�nements. Chaque m�thode qui modifie l'�tat de l'objet envoie un �v�nement appropri� (tel champ a �t� modifi�, un ajout s'est fait dans telle collection, ...) pour que les vues ouvertes se mettent � jour. L� o� JAC est un gars vachement sympatique, c'est que l'�mission de ces �v�nements est faites de fa�on g�n�rique et automatique. En effet, on d�tecte quelles m�thodes lisent ou �crivent quels champs par une analyse de bytecode (bas�e sur BCEL). A ce propose, �a fait quelques temps qu'on se dit �a serait int�ressant d'extraire cette fonctionnalit� pour en faire un biliot�que ind�pendante, donc si �a tente quelqu'un, faites-moi signe. Dans l'autre sens, les appels de m�thodes sont faits dynamiquement, les champs sont mis � jour via leurs m�thodes set<le_champ> (toujours d�tect� par analyse du bytecode, ce qui permet de ne pas d�pendre d'une convention de nommage). Pour la base, c'est un peu pareil finalement, les fonctionnalit�s AOP (Aspect Oriented Programming) de JAC nous permettent de d'intercepter de fa�on g�n�rique les get des attributs pour faire un chargement depuis la base, et les set pour les mises � jour. Tu trouveras des articles sur le site de JAC (http://jac.aopsys.com), mais pas vraiment quelque chose de pr�cis les points que je viens de d�crire. Bon courage, Laurent -- Laurent Martelli http://jac.aopsys.com/ [EMAIL PROTECTED] http://www.bearteam.org/~laurent/
