適用事例: Visitor パターン

多種多様な対象を扱うとともに動的な問題解決を図りたいとき、すぐに思い浮かぶのは古典的な〈GoF〉Visitor パターンです。そこで、前述した事例に、このパターンを適用してみます。すると、要求仕様の変更に伴って新たな対象を取り込みたいときに、既存のリソースに影響を与えることなく、その対象ごとに最適な表現手段(選択肢)を独立して扱えるようになります。
まず、パターンの復習から始めます。古典的な Visitor パターンを踏襲したのが、VisitorBrush.py です。



>ipy.exe VisitorBrush.py

このアプリケーションを起動すると、ウィンドウが現れます。1)任意のタブをクリックすると、2)選択したブラシ使って描画した図形が左側に表示されます。右側の図形は、外枠だけが表示されます。これは、将来の機能変更に伴って、新たな表現手段が可能になったときに、その動作を確認できる余地を残したもので、Visitor パターンの顕著な効用のひとつです。