Python 弾丸ツアー #DP: ツリー ... step 4: Visitor を導入する

OOPデザインパターンリファクタリング

Python.use(better); Python 弾丸ツアー #DP: Tkinter/Python
>>> ツリー(階層構造)
step 4: Visitor を導入する
《Python3.1|Jython2.5|IronPython2.6》

《著》小粒ちゃん@湘南組《監修》小泉ひよ子とタマゴ倶楽部
第0版♪2001/03/02 ● 第1版♪2003/05/23 ● 第4版♪2010/03/08

step 4: Visitor を導入する

《課題》指定したフォルダーを頂点とするツリーを表示したい。


《テストケース》次のコードを実行すると、ウィンドウが現われます。任意のアイコンをクリックすると、選択した項目(フォルダー、ファイル)の情報が、新たなウィンドウに表示されます。また、別のウィンドウには、文字列表現によってツリーが表示されます。□

$ python -i sp4_Visitor.py
>>> do(0)
>>> # -------------------------------------------------- tips



《TIPS》Visitor パターン:登場人物の相関図

 ̄全体を構成する各要素ごとに適切な操作を提供します。すると、要求仕様の変更があっても、既存の構造には影響を与えずに、新たな操作を追加できます。


  • Visitor
    • ConcreteElement ごとに、適切な操作を規定します。操作の対象は、実行時に確定します。
  • ConcreteVisitor
    • Visitor で規定したプロトコルを実現します。各操作は、各要素ごとに最適化されます。全体を構成する各要素を巡回しながら、その状態を累積します。
  • Element:
    • 全体を構成する各要素を規定します。
  • ConcreteElement
  • ObjectStructure
    • 構成する各要素を列挙するともに、各要素に対する操作を Visitor に委任します。
■ キーワード

 ̄Visitor・ConcreteVisitor・Element・ConcreteElement・ObjectStructure


TOP
》作業中です《