概要 | パッケージ | クラス | 使用 | 階層ツリー | 非推奨 API | 索引 | ヘルプ
| Woolpack API
前のパッケージ 次のパッケージ | フレームあり フレームなし

## パッケージ woolpack.visitor

インタープリタ デザインパターンの Expression 役と Context 役との間をダブルディスパッチする方式で定義した ビジター デザインパターンのパッケージです。

参照先:
説明

クラスの概要
ArrayAcceptor<E extends Exception> | エレメント役を配列とみなして、順次取り出した 値を引数にして`Visitor.visit(Object)`に委譲する関数です。
BeanAcceptor<E extends Exception> | エレメント役から順次取り出したプロパティの 名前と値を引数にして`Visitor.visit(Object)`に委譲する関数です。
ComplexAcceptor<E extends Exception> | 複合体を一段階分解した値を引数にして `Visitor.visit(Object)`に委譲する関数です。
EchoAcceptor<E extends Exception> | `Visitor.visit()`に委譲する関数です。
ElementAcceptor<E extends Exception> | コンテキストに DOM エレメントを追加して子ノードの処理を委譲する関数です。
FixAcceptor<E extends Exception> | 固定値を引数にして`Visitor.visit(Object)`に委譲する関数です。
IterableAcceptor<E extends Exception> | エレメント役を`Iterable`にキャストして、順次取り出した 値を引数にして`Visitor.visit(Object)`に委譲する関数です。
MapAcceptor<E extends Exception> | エレメント役を`Map`にキャストして、順次取り出した キーと値を引数にして`Visitor.visit(Object)`に委譲する関数です。
Visitor<S,E extends Exception> | インタープリタ デザインパターンの Expression 役と Context 役との間をダブルディスパッチする方式で定義した Visitor デザインパターンの Visitor 役です。
VisitorAppUtils | visitorパッケージの一般的な応用を集めたユーティリティです。

## パッケージ woolpack.visitor の説明

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

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

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

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

概要 | パッケージ | クラス | 使用 | 階層ツリー | 非推奨 API | 索引 | ヘルプ
| Woolpack API
前のパッケージ 次のパッケージ | フレームあり フレームなし

Copyright (C) 2006-2007 Takahiro Nakamura. All rights reserved.