Bonjour,
Tu peux utiliser un fichier property qui mappe les types d'imprimante avec le nom de la classe à instancier correspondante:
1 2 3
| //Contenu du fichier property
imprLaser = monapplication.impression.ImprimLaser
imprJetEncre= monapplication.impression.ImprimJetEntre |
Puis dans ton code tu utilise une clé, concrètement un paramètre String pour identifier le type d'impression. Dans notre cas cette clé aura pour valeur "imprLaser" ou "imprJetEncre".
Puis dans ton code d'appel à la classe concrète, tu as
Class.forName(modeImpression).newInstance()
où modeImpression prend les valeurs "monapplication.impression.ImprimLaser" ou "monapplication.impression.ImprimJetEntre" en fonction du paramètre.
Si le paramètre vaut "imprLaser " alors modeImpression prendra la valeur "monapplication.impression.ImprimLaser".
Donc la ligne de code précédente instanciera la classe monapplication.impression.ImprimLaser... puisqu'on doit concrètement faire une impression laser.
Tu peux utiliser cette idée avec des classes abstraites.
PS: il faut que tu code la lecture du fichier par java... pour avoir la correspondance entre la clé et nom de la classe à instancier.
Bon courage.
Partager