Reprise du message précédent :
MelloW a écrit a écrit :
Il faudrait mettre cela dans le constructeur du factory par exemple, pcq au sinon ton code client est dépendant de tout changement (support de nouveau formats,...).
|
ce qui implique que la factory ait connaissance dès la compilation de tous les formats, d'où impossibilité de charger une dll en runtime avec de nouveaux formats.
pour vraiment rajouter du code, on dérive toutes ces classes d'une classe de base, qui donne des services comme nom de la classe, nom du parent, isKindOf(), etc ... toutes ces classes sont enregistrées au chargement d'une dll dans une 'grosse' classe. l'imageFactory n'a plus qu'à demander à la 'grosse' classe qq chose comme 'instancie-moi toutes les classes dérivées de imageSerializer'. et hop, là c'est bien clean (pas de dépendance code client, possibilité de rajout de nouveaux objets via les dlls ... )
enfin là c'est vraiment s'il veut rajouter beaucoup de code