J'ai besoin d'enregistrer un fichier image dans différents formats. La liste des formats est sujette à changement assez souvent, donc je souhaite que la sauvegarde soit très extensible. En outre, la sauvegarde peut avoir lieu dans de nombreux endroits (disque dur, ftp, http, etc.). La liste des emplacements va changer très souvent aussi.Modèle de conception adapté à la tâche
Je pensais que j'utiliser une classe d'image de base et de nombreuses classes pour chaque format dérivant:
ImageBase {}
JpegImage : ImageBase {}
TiffImage : ImageBase{}
et gérer l'enregistrement dans chaque sous-classe appropriée au format. Est-ce une bonne dessiccation?
En outre, comment puis-je attacher un mécanisme d'enregistrement extensible d'emplacement (Ftp, partage de fichiers, etc)?
Je voudrais quelque chose comme ceci:
var image=ImageBase.GetImageFromDisk(path);
//some casting to subclass maybe??
var tiffImage=image as TiffImage;
tiffImage.Location=new FtpLocation();//not sure if this is a good idea
tiffImage.Save();
Le problème ici, est que la mise en œuvre d'image concrète ne devrait pas connaître ou se soucier de l'emplacement de sauvegarde. En appelant Save();
sur la sous-classe d'image, je voudrais déléguer le travail à une certaine classe, comme FtpLocation
.
S'il vous plaît des conseils sur la façon de mettre les pièces ensemble.
Merci.
Valentin.
Les femmes ne sont-elles pas autorisées à répondre à cette question? ;) –
+1 pour la remarque/question de Matt Hamilton –
Édité pour PC (Correct politiquement), ce qui est impair car je suis la dernière personne à être PC (dans tous les sens de l'acronyme). – UnkwnTech