Bonjour,
J'ai implémenté une couche métier qui travaille exclusivement avec une data access layer basé sur SQL.
Dans cette couche métier, j'ai crée 2 classes par table sql (j'ai une 15 aine de tables). Une classe dite "Business layer" (qui regroupe les methodes Select, AddEdit, Delete, List) et une classe dite "Business entity" qui regroupe des propriétés de la table SQL (les champs de la table ...).
Jusque la, que du classique ...
Mais je viens de me rendre compte d'une chose ! Je duplique vachement de code !
En effet, entre chaque classe BL, les seuls éléments qui changent sont des éléments tels que le type de retour des methodes ou les nom des parametre des procSto SQL ...
Donc je cherche une solution pour "Templatiser" cette BL ne n'avoir qu'a redéfnir que tres peu d'élément dans chaque classe, plutot que de réécrire tout le code pour acceder a la DAL à chaque fois ... Et ca va etre chaud a maintenir, car si la DAL est un peut modifier, c'est mes 20 classes métiers que je dois modifier par la suite ...
J'ai pas mal regardé le Design Pattern "Method Template" qui fondamentalement fait exactement ce que je veux (Créer une classe template abstraite avec le code générique et externaliser dans une classe fille concrète les morceau de code qui sont spécifiques dans chaque methode).
Mais gros probleme ... Peut etre insurmontable ... Quid des types d'entrée et de retour des methodes définies dans le template ? ...
Bref, je me laisse guider par vos réponses de spécialistes pour essayer de me simplifier la vie !
Merci,
Guillaume
Partager