IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Design Patterns Discussion :

"Template" de classe métier


Sujet :

Design Patterns

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 11
    Points : 10
    Points
    10
    Par défaut "Template" de classe métier
    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

  2. #2
    Membre éclairé
    Profil pro
    Ingénieur sécurité
    Inscrit en
    Février 2007
    Messages
    574
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2007
    Messages : 574
    Points : 751
    Points
    751
    Par défaut
    Salut,
    Tout d'abord, tu peux pas regrouper tes éléments génériques dans des classes statics?
    Le pattern template est plutôt utilisé pour laissez les sous-classes redéfinir une partie de l'algorithme.
    Tu as une classe mère avec un enchainement de méthode dont certaine sont abstraites. Les classes filles redéfinissent certaines de ces méthodes, ce qui permet d'avoir une implémentation différente d'un algorithme (classe fille), dont la structure est commune (classe mère).
    Je suis pas sur que le pattern template corresponde à ton besoin. A moins que tu n'effectue de nombreuses fois les même suite d'opération (dans ce cas là tes valeurs de retour doivent-être unifiée ou de type object).
    J'espère avoir été à peu près clair...
    Bonne chance.

  3. #3
    Membre expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Points : 3 134
    Points
    3 134
    Par défaut
    En effet, le pattern template ne me semble pas non plus adapté.

    Tu peux peut être regarder du coté des generics ? Ils existent en C# comme en Java il me semble. Cela te permet d'écrire des choses du genre :

    void insert(T1 value1, T2value2)
    {
    // requete
    }
    Hervé Delannoy, Ingénieur études&développement.

    Je n'accepte pas les demandes de mise en relation MSN/yahoo sans motif.
    ------------------------------------------------------------------------
    Si , ni , ne peuvent vous aider, mais nous oui, pensez à un pti et au !
    Merci de vous relire
    ____________________________________________________________________________________
    Recherche joueurs de "Magic" sur Lille et environs.
    Donner plutôt que jeter.

  4. #4
    Membre expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Points : 3 134
    Points
    3 134
    Par défaut
    En effet, le pattern template ne me semble pas non plus adapté.

    Tu peux peut être regarder du coté des generics ? Ils existent en C# comme en Java il me semble. Cela te permet d'écrire des choses du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    void insert(T1 value1, T2value2)
    {
    // requete sql avec types generiques
    }
     
    T1 select(T2 pk_value)
    {
       T1 = new T1();
       // requete select
       return T1
    }

    Et de les utiliser avec des types différents à chaque fois.
    Hervé Delannoy, Ingénieur études&développement.

    Je n'accepte pas les demandes de mise en relation MSN/yahoo sans motif.
    ------------------------------------------------------------------------
    Si , ni , ne peuvent vous aider, mais nous oui, pensez à un pti et au !
    Merci de vous relire
    ____________________________________________________________________________________
    Recherche joueurs de "Magic" sur Lille et environs.
    Donner plutôt que jeter.

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo