2 votes

Comment modéliser la classe Document ?

J'utilise une classe de document. La première fois, c'était pour les fichiers courants avec des méthodes comme New(), Open(), Save().

New() et Open() renvoient un document ID. Save ne renvoie rien. Comme vous pouvez le voir dans le diagramme ci-dessus.

enter image description here

Dans mon programme, il faut utiliser l'extension xml ou zip. Pour les fichiers xml il n'y a pas de problème, toutes les méthodes sont pour eux. Mais j'ai des problèmes avec les fichiers zip. J'avais prévu de faire ceci, quand le programme exécute Open(), extraire tous les fichiers xml du zip et retourner tous les fichiers. Mais mon Open() ne renvoie qu'un document.

J'avais l'intention de créer une autre propriété appelée CanExtract(), mais ce n'est peut-être pas une bonne idée. Je veux juste créer une bonne conception et compréhensible.

5voto

Nick Points 976

Modifiez votre fonction Open() pour qu'elle renvoie un IEnumerable d'IDocument :

public IEnumerable<IDocument> Open()

au lieu de

public IDocument Open()

Ensuite, lorsque vous ouvrez un fichier xml, il renvoie un IEnumerable contenant 1 IDocument et vous pouvez utiliser celui-ci. Lorsque vous ouvrez le fichier zip, il renvoie tous les fichiers du zip sous forme d'IDocuments à l'intérieur de l'IEnumerable.

0voto

competent_tech Points 29781

Je vous recommande de modifier votre propriété de retour pour en faire une liste. Vous pourrez alors traiter la liste de documents avec le même code, qu'il y ait 1 ou 20 fichiers renvoyés.

Vous pourriez également ajouter des surcharges pour la création et l'enregistrement qui acceptent plusieurs fichiers et, si ces surcharges sont utilisées, vous pourriez effectuer un zippage automatique.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X