6

グラフと、エッジの総重量の取得やグラフのきれいな印刷など、グラフの頂点/エッジでいくつかの計算を行う非常に単純な訪問者のセットがあります。

さらに一歩進んで、たとえばDFS方式でグラフにアクセスする訪問者を増やしたいと思います。

ただし、ビジターパターンはトラバーサルメカニズムとは別に、トラバーサルメソッドはイテレーターなどの他のパタ​​ーンを使用して作成する必要があると思います。私は正しいですか、それとも何かが恋しいですか?

4

1 に答える 1

4

コメントが言うように、Visitor はトラバーサル メカニズム自体には関係ありません。これは、Iterator またはその他の具体的なトラバーサル メソッドが決定する仕事です。

イテレータがある場合、ビジターはそれほど「不要」ではありません。これは、繰り返し処理するアイテムに適用する操作の複雑さに依存します。

Visitor は、実装を変更せずに既存のオブジェクトを論理的に拡張したものです。したがって、その目的は、再利用とさらなる拡張のためにこの拡張をカプセル化することです。

Iterator と、すべての要素に適用したい単純な操作がある場合、Visitor は必要ありません。

于 2012-10-22T10:46:52.093 に答える