Bonjour tout le monde,
je souhaite faire plusieurs applications qui pourront exporter dans un tableur, soit dans Excel soit dans OpenOffice.org.
Il y aura au final, une suite pour Excel et une suite pour OpenOffice.org.
Les 2 suites ont bien entendu tout le code métier en commun, seul le code de pilote des tableurs change.
Ainsi, je désire créer une dll ExportExcell.dll et une dll ExportOOo.dll.
Chacune de ses 2 dll possèdera le code spécifique associé au tableur lui correspond et les projets et autres dll métier n'auront aucun code spécique à tel ou tel tableur.
Jusque là, rien de bizarre, juste une volonté de faire un code propre.
Ainsi, la solution est de faire une interface Tableur avec 2 classes filles TableurExcel et TableurOOo, chacune des 2 filles se trouvant dans une des 2 dll et création des filles en utilisant un design pattern Fabrique abstraite.
Mon soucis est que je ne sais pas où définir mon interface Tableur, en effet, si je souhaite la déclarer dans mon projet principal métier, il faudra que les dll puissent y avoir accès et ce n'est pas faisable car mon projet principal doit déjà pouvoir y accéder, de plus, je ne voudrais pas que les dll dépendent du code métier.
Si je déclare l'interface Tableur dans une assembly séparée, ça me fait créer une dll qui ne possèdera qu'une déclaration d'une interface, je trouve que c'est un gaspillage pour pas grand chose et une complication de l'architecture.
Quelle est la solution en général pour ce genre de problème d'architecture ?
Je ne vois pas mais me dis que je ne suis pas le seul à me poser ce problème.
Merci par avance pour vos suggestions.
Partager