Bonjour,
Je suis actuellement en train de développer une application (en Java, mais ca change rien) et je suis en train de me rendre compte que mon architecture est pas terrible (j'aurais mieux fait d'y réfléchir au début, mais bon ). J'ai donc décidé de revoir un peu tout ça, et de l'adapter au pattern MVC, mais je n’arrive pas vraiment à cibler tout ça...
Actuellement, j'ai :
Pour le moment, il n'y a pas grand chose de très strict... Les actions font appel à des objets métiers, aux modèles et aux vues et font le transfert au bon endroit ensuite. Mais ca ne me convient pas trop en fait
- Des objets de données (OdXXX et OdXXXImpl) : Ce sont de simples bean formés d'accesseurs et de setters
- Des objets pour l'accès au données (OmXXX) : Ces objets me permettent d'accéder aux objets de données, c'est à dire de récupérer la liste, de faire une recherche, de récupérer un seul objet, ... Ce sont mes modèles en quelque sorte.
- Mes interfaces (JFrameXXX) : Là, je ne suis pas vraiment satisfait car elles contiennent encore un peu de code métier...
- Mes actions (actions déclenchées sur bouton ou menu) sont dans des fichiers à part et vont ensuite effectuer des traitements soit sur le métier soit sur la vue
- Mes listeners se trouvent directement dans la vue, donc pas terrible
- D'autres objets, tels que pour gérer l'exportation, la mise à jour du soft, ...
Donc, ce que je vois qu'il faudrait faire déjà, il faut que je crée un objet Contrôleur qui contienne les listeners de la vue et qui ensuite la mette à jour avec les données récupérées des modèles et/ou des objets métiers.
Mais par contre, mes actions, je les mets ou ? Dans le contrôleur ? Par action, j'entends un Objet qui va exécuter quelque chose sur clic d'un bouton ou sur un menu, pour le moment elles sont dans des classes avec des accesseurs et la vue fais un actions.getActionForXXX() et la spécifie pour ce bouton. Donc soit je les mets dans un fichier à part, soit je les mets dans le contrôleur.
Et après, par exemple, une méthode qui permet de remplir les champs de vue avec les données du modèle, appelons la fillFields(), je la met où ? Directement dans la vue et elle va chercher les données dans le contrôleur, qui va ensuite chercher les données dans le modèle ? Ou alors dans le contrôleur qui va chercher les données dans le modèle et modifie les champs de la vue ?
Et une dernière question (c'est bientôt fini, vous inquiétez pas ), si la vue a besoin d'une donnée A qui est contenue dans le modèle, je mets un accesseur getA() dans le contrôleur qui va ensuite chercher la donnée dans le modèle ? Ou, une autre idée, c'est de faire un bean qui contienne les données et on mettrait ce bean dans le contrôleur et ensuite, la vue va chercher le bean dans le contrôleur et va ensuite chercher les valeurs dans le bean ? Mais c'est peut-être un peu exagéré, mais ca permettrait de ne pas avoir tous les accesseurs dans le contrôleur, qui ne ferait qu'initialiser le bean qui quant à lui ne contiendrait que des données.
D’avance de supporter cette lecture et d'essayer de répondre à mes interrogations
Si vous avez des questions, car je ne sais pas si j'ai été très clair, ben, hésitez pas
Partager