Question

Existe-t-il un modèle intéressant à utiliser lors de la sauvegarde et du chargement de formats de fichier différents?

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

J'ai pensé au modèle de stratégie, mais je ne suis pas convaincu par la nécessité d'accéder à toutes les parties de l'objet afin de le sauvegarder et de le charger.

Était-ce utile?

La solution

Vous pouvez utiliser un Modèle de visiteur , ce qui permet d'effectuer une itération sur votre hiérarchie en effectuant différentes opérations. en fonction du noeud actuellement traité par le visiteur.

Mauvaise nouvelle: vous devez probablement au moins ajouter 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 aura toujours accès aux données des nœuds, mais vous découplerez le format de fichier, car différentes implémentations de visiteurs peuvent écrire les données recueillies de différentes manières.

Consultez également le modèle de mémento si le masquage des données de la hiérarchie de classe est indispensable. . Cet article pourrait également être utile.

Modifier: Lien vers l'original Article de modèle de souvenir à l'aide de Google Cache

Autres conseils

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

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

Une super-classe sait déchirer la hiérarchie des classes, mais ses sous-classes lui permettent de faire quelque chose d’utile avec elle.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top