5

異なるファイル形式を保存およびロードするときに使用するのに適したパターンはありますか?

たとえば、ドキュメントのクラス階層が複雑ですが、いくつかの異なるファイル形式をサポートしたいと考えています。

Strategy パターンについて考えましたが、オブジェクトを保存およびロードするためにオブジェクトのすべての部分にアクセスする必要があるため、納得できません。

4

3 に答える 3

2

Visitor Patternを使用できます。これにより、Visitor が現在処理しているノードに応じて、さまざまな操作を実行して階層を反復処理できます。

悪いニュース: おそらく階層の最上位に少なくとも仮想メソッドを追加し、いくつかの派生クラスでそれを再定義する必要があり、ビジターは引き続きノードのデータにアクセスしますが、異なるビジターとしてファイル形式を分離します実装は、さまざまな方法で収集されたデータを書き込むことができます。

クラス階層データを非表示にする必要がある場合は、 memento パターンも参照してください。こちらの記事も参考になります。

編集: Google キャッシュを使用して元のMemento パターン記事へのリンク

于 2008-09-17T09:17:08.583 に答える
1

You might want to take a look at the Builder pattern. GoF page 97..

于 2008-09-17T09:06:29.997 に答える
0

Template メソッドのパターン (に基づくもの) はどうですか?

1 つのスーパークラスは、クラス階層を分割する方法を知っていますが、実際に何か役に立つことをサブクラスに依存しています。

于 2008-09-17T09:09:39.223 に答える