Bonjour à tous,
je suis entrain de mettre en place un petit projet J2EE (JSF/Richfaces/Hibernate) pour m'entrainer un peu !
J'aurai une petite question sur la couche DAO.
Voici mes codes
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 public abstract class AbstractDAOFactory { public abstract DAO<Object> getCrudDAOHibernate(); public abstract DAO<Object> getCompanyDAO(); public abstract DAO<Object> getPersonDAO(); /** * Méthode permettant de récupérer une factory de DAO * @param type * @return AbstractDAOFactory */ public static AbstractDAOFactory getFactory(FactoryType type){ if(type.equals(FactoryType.DAO_FACTORY)){ return new DAOFactory(); } if(type.equals(FactoryType.XML_DAO_FACTORY)){ //return new XMLDAOFactory(); } return null; } }Ensuite dans la couche métier, j'utilise ça
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 public class DAOFactory extends AbstractDAOFactory{ @Override public DAO<Object> getCrudDAOHibernate() { return new CrudDAOHibernate(); } @Override public DAO<Object> getCompanyDAO() { return new CompanyDAOImpl(); } @Override public DAO<Object> getPersonDAO() { return new PersonDAOImpl(); } }
Or ce que j'aime pas dans tout ça, c'est qu'on sait le type d'implémentation qu'on va utiliser, c'est DAO_FACTORY, ça aurait pu etre XML_FACTORY.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 PersonDAO persDAO = (PersonDAO) AbstractDAOFactory.getFactory(FactoryType.DAO_FACTORY).getPersonDAO( ); public void embaucher(Person p) { persDAO.create(p) } ....
Aurais-vous une idée de la manière dont je dois m'y prendre pour cacher le type de l'implémentation dans la couche métier...... (Spring par ex ?)
merci!!
Partager