Design Pattern | Visitor Pattern(ビジターパターン)

Visitorパターンとは?

  • Visitorという英単語は訪問者という意味である。
  • Visitorパターンは、データ構造と処理を分離する方法である。
  • データ構造を巡回する訪問者クラスを用意し、処理を訪問者クラスに任せる。そして新しい処理を追加したいときは、新しい訪問者を作ればよい。データ構造側では訪問者を受け入れればよい。
  • GoFのデザインパターンでは、振る舞いに関するデザインパターンに分類される。

Visitorパターンのサンプルプログラム

ディレクトリ、ファイル一覧を表示するサンプルプログラムである。

Class Diagram
Visitor Pattern Class Diagram

例では、Visitorを受け入れるデータ構造を表すElementインターフェース、Visitor抽象、ファイルとディレクトリのEntry、構造を巡回して表示する具象Visitorを定義する。

メリット

データ構造クラスを変更せずに、新しいVisitorを追加することで操作を追加できる。オブジェクト構造は安定しているが、その上で行う処理がよく変わる場合に有効である。