Bonjour,
Je voudrai savoir si la manière dont je vais coder est correcte.
Je suis en train de développer une application Web (Spring, Hibernate, Struts2 et un framework développé par mon entreprise, le framework FI).
Voilà comment je fonctionne aujourd'hui :
Le framework FI accélère le développement en proposant des classes génériques :
- une classe générique proposant des méthodes génériques pour le DAO : GenericHibernateDAO<T> qui implémente une interface,
- une classe générique proposant des méthodes génériques pour le Manager : GenericManager<T> qui implémente une interface IManager<T>
Spring s'occupe de l'instanciation des dao dans les manager. Le framework FI fourni toutes les méthodes CRUD et permet de lister. En tant que développeurs, nous n'avons pas à coder le contenu d'un manager ou d'un DAO. Nous utilisons ces manageurs (ce sont des interfaces) juste dans la couche de présentation pour les actions Struts.
Le problème :
Parfois les méthodes save, update, delete ou list nécessitent avant ou après de filtrer. Par exemple notre framework FI charge tous les objets d'une table lors d'un list.
Je souhaiterai ajouter dans mes DAO des méthodes. Le problème c'est que je vais rajouter ces méthodes dans mes classes GenericManager<T> alors que dans mes actions j'utilise IManager<T>. donc dans mes actions je n'aurai pas accès à mes propres méthodes.
Voilà la solution que je propose (mais je ne sais pas si c'est propre) :
par exemple, J'ai donc une classe ActionManager qui hérite de la classe du framework FI GenericManager<Action>. Je veux avoir une méthode qui me renvoie vrai si une action existe. ce qui donne :
Ensuite dans mes actions struts, pour utiliser cette méthode je passe par la classe et plus par l'interfaces :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 public class ActionManager extends GenericManager<Action> { public boolean actionExiste(String nom) { boolean existe = true; ... return existe; } }
Est-ce correct de faire comme ça ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 IManager<Action> mgrSdr = BeanManagerFactory.getInstance().getBeanMgr(Action.class); ActionManager m = (ActionManager) mgrSdr; m.actionExiste("ligbelle1");
Cordialement,
Nicolas
PS : je ne sais pas si j'ai été assez clair
Partager