5 votes

Modèle pour enregistrer et écrire dans différents formats de fichier

Y a-t-il un modèle qui est bon à utiliser lorsque l'on enregistre et charge différents formats de fichiers ?

Par exemple, j'ai une hiérarchie de classes compliquée pour le document, mais je veux prendre en charge quelques formats de fichiers différents.

J'ai pensé au modèle de stratégie, mais je ne suis pas convaincu à cause du besoin d'accéder à chaque partie de l'objet pour l'enregistrer et le charger.

2voto

Ricky AH Points 2366

Vous pourriez utiliser un modèle Visiteur, cela permet d'itérer sur votre hiérarchie en effectuant différentes opérations en fonction du nœud que le Visiteur traite actuellement.

Mauvaise nouvelle : vous devrez probablement ajouter au moins une méthode virtuelle en haut de la hiérarchie, et peut-être la redéfinir dans certaines classes dérivées, et le visiteur accèdera toujours aux données des nœuds, mais vous séparez le format du fichier, car différentes implémentations de visiteurs peuvent écrire les données collectées de différentes manières.

Jetez également un œil au modèle Memento si cacher les données de la hiérarchie de classe est indispensable. Cet article pourrait également vous être utile.

Édition : Lien vers l'article original sur le modèle Memento en utilisant le cache de Google

1voto

erlando Points 5802

Vous voudrez peut-être jeter un coup d'œil au pattern Builder. Page GoF 97..

0voto

ridogi Points 2897

Que diriez-vous de (quelque chose basé sur) le modèle de méthode de gabarit ?

Une superclasse sait comment décomposer la hiérarchie de classes, mais elle compte sur ses sous-classes pour effectivement en faire quelque chose d'utile.

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