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

C# Discussion :

Factory objet generique


Sujet :

C#

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 349
    Points : 439
    Points
    439
    Par défaut Factory objet generique
    Bonjour à tous,

    Je fais face à un problème technique ou j'aimerai utilisé de façon poussé la POO.

    Je m'explique :

    2 types d'émissions possibles via le programme : Fax, Mail

    J'ai crée une classe mère abstraire courrier qui contient une méthode Envoi() et deux sous classes spécialisées qui héritent de Courrier en redéfinissant la méthode Envoi().

    Jusque là, pas de problèmes

    Ce que je dois émettre comme informations provient de la base de données

    Donc j'aimerai éviter lors de la lecture de la base de données pour créer ma liste de messages, un test conditionnel

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     Emissions = Lecture DB
     maListe<courrier> = new List<courrier>()
     
     Pour uneEmission dans Emissions
             if uneEmission.typeEmission = 'FAX'
                 maListe.add(new Fax())
             sinon maListe.add(new Mail())
     Fin pour
    Comment faire pour éviter le if ?

    Est-il possible de déterminer le type grâce à la généricité et un délégué ?

    La seule possibilité que je vois, c'est faire une lecture DB par type d'émission et renvoyer le type d'objet adéquat ....

    Le pattern Factory fonctionnerait-il pour mon cas ?

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2002
    Messages : 332
    Points : 502
    Points
    502
    Par défaut
    Oui le factory pattern pourrait faire l'affaire.

    Mais je me questionne surtout sur l'utilité d'une classe abstraite si toutes les méthodes sont systématiquement surchargées.

    Dans ce cas, vaut mieux utiliser une interface.

    Et tant qu'à utiliser un design pattern comme le Factory Pattern, pourquoi ne pas commencer à regarder l'inversion de contrôle?

    Pour bien maitriser tous les design patterns, je recommande ce livre.

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2005
    Messages : 700
    Points : 488
    Points
    488
    Par défaut
    Du meme avis, ne fais une classe abstraite que si certaines methodes sont rigoureusements identiques entre les classes enfants, sinon une interface sera parfaite.

    ce site est pas mal aussi car il donne à chaque fois 2 exemples, un scolaire et un pratique :
    http://www.dofactory.com/Patterns/Patterns.aspx

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 349
    Points : 439
    Points
    439
    Par défaut
    Salut à tous,

    Merci de vos réponses,

    La seule méthode qui sera surchargée sera la méthode Envoi() puisque entre mail et fax, il y a une différence

    Sinon il y a un traitement commun ...

    J'ai pensé à l'inversion de contrôle, mais je pense que pour ce besoin ça sera trop compliqué pour pas grand chose ...

    Le mieux est donc de partir sur une interface alors ?

Discussions similaires

  1. [Débutant] Cast d'objet generique
    Par mayekeul dans le forum C#
    Réponses: 16
    Dernier message: 12/10/2011, 15h06
  2. Réponses: 1
    Dernier message: 27/04/2010, 05h10
  3. creer une class generique factory
    Par Battosaiii dans le forum Langage
    Réponses: 1
    Dernier message: 26/07/2007, 13h56
  4. [Fabrique] Factory d'objets dynamiques à partir de définition xml
    Par djimbo75 dans le forum Design Patterns
    Réponses: 5
    Dernier message: 17/07/2007, 20h01

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