Frage

Gibt es ein Muster, das gut zu bedienen ist beim Speichern und verschiedene Dateiformate Laden?

Zum Beispiel, ich habe eine komplizierte Klassenhierarchie für das Dokument, aber ich mag ein paar verschiedenen Dateiformate unterstützen.

dachte ich über das Strategie-Muster, aber ich bin wegen der Notwendigkeit nicht überzeugt, jeden Teil des Objekts zuzugreifen, um sie zu speichern und zu laden.

War es hilfreich?

Lösung

Sie eine Visitor Pattern , ermöglicht es über die Hierachie iterieren tun verschiedene Operationen Knoten in Abhängigkeit von den Besucher zur Zeit der Verarbeitung.

Bad news: Sie müssen wahrscheinlich mindestens eine virtuelle Methode an der Spitze der Hierarchie hinzufügen, und vielleicht ist es in einigen abgeleiteten Klassen neu zu definieren, und der Besucher noch die Daten des Knoten zugreifen, aber Sie entkoppeln das Dateiformat, wie verschiedene Besucher-Implementierungen können die Daten schreiben auf verschiedene Arten gesammelt.

Schauen Sie auch auf der Erinnerungsmuster wenn die Klasse Hierachie Daten versteckt ist ein Muss . Dieser Artikel könnte auch hilfreich sein.

Edit: Link zum Original- Memento Muster Artikel google Cache mit

Andere Tipps

Sie können einen Blick auf die Builder-Muster zu nehmen. GoF Seite 97 ..

Wie wäre es (etwas basierend auf) die Vorlage Methode Muster ?

Ein Super weiß, wie die Klassenhierarchie zu zerreißen, sondern verlässt sich auf seine Unterklassen, um tatsächlich etwas Nützliches damit zu machen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top