Visitor が iteration を担うのもアリ

Visitor が巡回方法(iteration)の責任を負う場合もあるのかぁ。GoF本を読み返したら書いてあった。
この記述を発見するまでは以下のような事を考えていた。

Visitor という観点で攻めているのが間違いなような気がする。あくまでも Composite というポリシーを崩さずに作り上げてみる。オブジェクトチェーンを辿りながら何かをしたいという要求は変わらないが、これを Decorator で実装してみる。何かを辿るというのを Decorator::Operation の最小要素にする感じで。
これが MC++D の Visitor を組み込んでみた感想です。

で、Visitor が iteration を行うならば、その iteration を Decoration していけば、巡回が行われるタイミングで色々と処理ができるようになる。