インタープリタ デザインパターンの Expression 役と Context 役との間をダブルディスパッチする方式で定義した ビジター デザインパターンのパッケージです。 一般の Visitor デザインパターンと本パッケージの Visitor デザインパターンの対応を以下に示します。

一般のVisitorパターン | 本パッケージ
--- | ---
Visitor役 | {@link woolpack.visitor.Visitor}
visitメソッド(オーバロード機構を使用して一般に複数ある) | {@link woolpack.visitor.Visitor#visit(Object)}(このメソッドのみ)
Element役(acceptメソッドを除く) | {@link woolpack.visitor.Visitor#visit(Object)}に渡した任意のオブジェクト
Element役のacceptメソッド | {@link woolpack.visitor.Visitor}をコンテキストとした{@link woolpack.fn.Fn}実装
Element役のacceptメソッドの集合 | {@link woolpack.visitor.Visitor#setMap(Map)}に設定したキーと{@link woolpack.fn.Fn}の対応表

本パッケージの Visitor デザインパターンには以下の特徴があります。

1. 任意の構造に対してアスペクト(横断的関心)を適用することができます。
2. acceptメソッドを{@link woolpack.fn.Fn}として部品化しているので、 キーと{@link woolpack.fn.Fn}の対応表を加工することにより動作の一部を変更することができます。