>>>>> "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/

Répondre à