Partage
  • Partager sur Facebook
  • Partager sur Twitter

Design pattern

Factory method et Abstract factory

    25 mars 2009 à 10:27:03

    Salut les zéros ^^.

    Aujourd'hui je m'attaque aux designs pattern ! Le problème est de créer une fabrique DAO.
    Je vos explique. Je souhaite gérer l'accès à deux bases de données (peu importe, disons MySQL et Oracle) et créer deux objets (A et B) plus ou moins semblables.

    Ma première solution est d'implémenter une Abstract Factory avec :
    En gros, via ma factory (Mysql ou Oracle) je demande à créer un produit A ou B, et selon la factory (Mysql ou Oracle) un produitA Mysql ou produitAOracle est retourné.

    Ma question est de transformer ça en Factory Method. J'ai cru comprendre que l'interface devenait une abstract class, mais je me noie dans la documentation et mes schémas UML. Je finis toujours par revenir sur une abstract Factory de ce schéma, alors qu'il parait que je ne suis pas censé "connaitre" le type de base (Mysql ou Oracle) avant de le spécifier (paramètre...)

    Est-ce que mon abstract factory semble bonne, ou est elle à la base de mon soucis ? Si elle est ok, sur quelle structure partiriez vous pour la factory method ??

    Merci à tous !


    FabriqueDAO : interface
    public ProduitA createMenu();
    public ProduitB createCommande();
    


    FabriqueDAOMySQL (la même chose pour Oracle, avec Oracle à la place des MySQL)
    public ProduitA createProduitA() { return new ProduitAMySQL(); }
    public ProduitB createProduitB() { return new ProduitBMySQL(); }
    


    Le Produit A : interface (Pareil pour le Produit B)
    public int methode1(int i);
    public String methode2(Strintg s);
    


    Le Produit A Mysql : implémente le Produit A( Pareil pour le Produit A Oracle et les produits B)
    public int methode1(int i) { // Implémentation }
    public String methode2(Strintg s) { // Implémentation }
    
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      25 mars 2009 à 11:36:56

      Rien de compliqué: un type abstrait en type de retour pour chaque factory, et des implémentation concrètes instanciées par cette factory, et surtout un seul type de DAO peut importe la factory qui le génère sinon c'est un non-sens d'utiliser ce pattern.


      PS: ne pas utiliser les pattern parce que c'est a la mode mais seulement lorsque tu as un problème que tu ne peut solutionner efficacement.
      PPS: évite de mélanger le français et l'anglais dans ton code, essaie d'être constant c'est plus maintenable.
      • Partager sur Facebook
      • Partager sur Twitter

      Design pattern

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown