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

Autres Discussion :

Implémentation de ce pattern [DAO]


Sujet :

Autres

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 14
    Points : 12
    Points
    12
    Par défaut Implémentation de ce pattern
    Bonjour,

    J'ai lu la description du pattern DAO sur la page de Sun et une question me trotte dans la tete.

    Si j'ai bien compris, leur recommandation est la suivante:
    - Si vous n'utilisez qu'un seul type de BDD, il faut utiliser le pattern Factory Method
    - Si vous utilisez différents types de BDD, il faut mettre en place le pattern Abstract Factory

    Dans le cas du pattern Factory Method, si l'on sait que l'on ne va utiliser qu'un seul type de BDD, je ne saisi pas l'interêt du niveau d'indirection supplémentaire ajouté par CloudscapeDAOFactory.

    Pourquoi ne pas rendre DAOFactory concrete et la charger d'instancier directement les classes DAO ? (la classe CloudscapeCustomerDAO deviendrait simplement CustomerDAO dans ce cas)

    Exemple:
    CustomerDAO customerDAO = DAOFactory.getCustomerDAO();
    customerDAO.insertCustomer(customer);

    S'il s'agit d'un mécanisme permettant l'éventuel ajout d'un autre type de BDD par la suite, autant implémenter directement une fabrique abstraite.

    Voilà, si quelqu'un à une opinion sur le sujet je serai tres interessé

  2. #2
    ego
    ego est déconnecté
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 883
    Points : 3 510
    Points
    3 510
    Billets dans le blog
    2
    Par défaut
    Outre le fait qu'une bonne pratique générale est la programmation par "interface" (= on définit toujours le contrat d'une classe au travers d'une interface et ensuite on propose une implémentation), l'idée est ici qu'en proposant une interface, tu vas pouvoir proposer une implémentation qui sera un "bouchon", les anglais parlent de mocked object. Ainsi, tu pourras tester ton appli sans avoir la "vraie" implémentation tant que celle-ci n'est pas encore développée.
    Ce principe est abondamment utilisé dans le framework Spring. Que je te conseille de regarder si tu t'intéresses aux DAO.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 14
    Points : 12
    Points
    12
    Par défaut
    Merci pour ta réponse ego

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Implémenter le design pattern Factory
    Par Danger dans le forum Logging
    Réponses: 4
    Dernier message: 27/03/2010, 10h01
  2. Implémenter le design pattern Observer avec les services web
    Par Klemsy78 dans le forum Services Web
    Réponses: 1
    Dernier message: 12/02/2008, 16h51
  3. Implémentation du design pattern singleton
    Par 0pierrot0 dans le forum C++
    Réponses: 1
    Dernier message: 22/01/2008, 10h01
  4. Implémentation du pattern Factory
    Par tut dans le forum C++
    Réponses: 6
    Dernier message: 02/08/2006, 13h43

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