まとめ

機能の要求(what)と実現(how)とを分割統治するのに、Visitor パターンを適用するとともに、それを実現するための手段として、動的な問題解決を導入する方法を紹介しました。
さらに、もう一歩踏み込んで、このアプローチを積極的に導入したいなら、Visitor クラスに頼らなくても、Visitor オブジェクトを実行時に生成して、それに処理を委ねることも可能です。その詳細については、Smalltalk を参考にすると良いでしょう。