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 ?