Visitorパターン

■目的
処理をデータ構造から分離するために適用する。
Visitorがデータに訪問して処理を行う。
■メリット

  • データ構造クラスを変更しなくてもConcreteVisitorを追加するだけで機能を追加できる
  • 具象クラスごとに異なる操作を提供する
  • 1つのクラスに1つの操作をまとめることができる。
    具体的にはVisitorクラス側に操作をまとめられる。

■考慮事項

  • ConcreteVisitor役の追加は容易
  • ConcreteElement役の追加は困難
    すべてのVisitorクラスに修正が必要になるため。
    ConcreteElementの追加が想定されるケースではパターンを適用しない方がよい。
  • ConcreteVisitorの数が少数である場合は、不必要に構造が複雑になるので適用を控えた方がよい。

■関連しているパターン

  • Iteratorパターン
    関連しているというよりは、ObjectStructureの実現に必要。
  • Compositeパターン
  • Interpreterパターン

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です