Pour un dev en couche un créé par exemple :
une couche IHM
une couche BLL
une couche DAL
un BO utilisé dans ces couches
Ensuite soit un BO Préparation composé d'un BO LigneCommande lui même composé d'un BO EnteteCommande lui même composé d'un BO Client.
Une BLL manager et une DAL est créé pour chaque BO afin de gérer ces objets individuellement.
Pour créer un Bordereaux de livraison (BL) je livre une Préparation. Donc une BLL manager pour le BL avec une méthode LivrerPreparation.
Cette méthode a besoin d'info dans LigneCommande, EnteteCommande et Client pour appliquer les regles de gestion.
Si on utilise les DAL de chaque BO on a 4 requête SQL (donc 4 aller-retour vers le SGBD). Bonjour les perf si c'est en réseau et que cela implique 8 DAL !
Alors que si on crée une nouvelle méthode dans la DAL avec une requête avec jointure... qui alimente les différents BO, on 1 seul aller-retour.
De plus tout n'est pas nécessaire (membres) dans la BO alors quel est l'intérêt de tout récupérer avec la requête SQL ?
Si tout n'est pas récupérer alors les méthodes de la BLL de base (CRUD) ne peuvent pas fonctionner correctement.
Pour conclure le dev en couche (décomposition en éléments simples et réutilisables) est il incompatible avec les perf d'accès aux données ?
Comment faites vous pour concilier les 2 ?
MERCI
Partager