[Spring/Hibernate]Conception couche Dao et service
Bonjour,
Ma question porte sur la manière de faire interagir la couche Dao et Service d'une application. Partons du code suivant:
Code:
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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
| class MagasinDao{
...
void delete(...){}
...
}
class StockDao{
...
void delete(...){}
...
}
class ArticleDao{
...
void delete(...){}
...
}
class MagasinServiceImpl implements MagasinService{
@Autowired
MagasinDao magasinDao;
@Autowired
StockService stockService;
...
void delete(...){
//some code and test
stockService.delete(...);
magasinDao.delete(...);
}
...
}
class StockServiceImpl implements StockService{
@Autowired
StockDao stockDao;
@Autowired
ArticleService articleService;
...
void delete(...){
//some code and test
articleService.delete(...);
stockDao.delete(...);
}
...
}
class ArticleServiceImpl implements ArticleService{
@Autowired
ArticleDao articleDao;
...
void delete(...){
//some code and test
articleDao.delete(...);
}
...
} |
Comme vous pouvez le voir:
1) j'essai de n'appeler dans un Service que la Dao correspondante
2)et si il y a besoin de faire des opérations sur d'autres entités que celle dont est en charge le Service, je fais appel aux autres Services correspondants au lieu de faire appel au Dao correspondantes.
Dans l'optique d'adopter l'architecture la plus souple possible(gain en ligne de code, ré utilisabilité) :
1)j'aimerais connaitre vos critiques, conseil
2)les bonnes pratiques à adopter pour ne pas violer le modèle en couche Dao/Service
3)vos manières de faire pour manipuler des entités externes à un Service spécifique.
4)Des exemples succints de code