適用事例: Bridge パターン

what/how の役割分担で、すぐに思い浮かぶのは古典的な〈GoF〉Bridge パターンです。そこで、このパターンに、データバインディングを導入した事例を紹介します。
まず、パターンの復習から始めます。古典的な Bridge パターンを踏襲したのが、exBridgeList.py です。これを実行すると、次のようなウィンドウが現れます。



>ipy.exe exListView.py
ItemList: AntiqueWhite
GridList: 'Aqua'(0,255,255)

(左)リスト項目には、色の名前が表示されます。AntiqueWhite を選択すると(中)キャンバスにその色が表示されます。
(右)リスト項目には、色の名前と色成分(赤/緑/青)が表示されます。Aqua を選択すると(中)キャンバスにその色が表示されます。
左右のリスト項目は、提示する情報が違うだけで、選択した色をキャンバスに表示する機能は同じです。このように、目的は同じでもそれを実現する手段だけが異なるときには、Bridge パターンを適用できないか検討するだけの価値があります。