Season I:JList 篇
■ 概要
アプリケーションを作成する過程を通して、Jython/Swing によるデザインパターンを習得します。
この課題では、Swing/GUI を使ってモデルの変化に呼応する複数のビューを提示します。〈GoF〉Observer パターンを導入すると、依存性を扱うのが容易になるので、要求仕様の変更にも柔軟に対処でき、簡潔で見通しの良いコードを記述できるようになります。
《Note》JPython1.1.x/Jython2.1.x 用に作成したセミナー課題を、Jython2.5 で再構成しました。
EPISODE
1.00:アプリケーションギャラリー
モデルの変化に呼応する複数のビューを提示します。
1.01:JList を利用する
Jython の対話モードを活用すると、実行中のアプリケーションの状態を確認できるので便利です。これらの情報は、Jython の汎用的な機能を利用して得られるので、同等の機能をアプリケーションごとに用意する必要はありません。
1.02:Canvas を利用する
JList の項目を選択すると(値が変更されたときに)メソッド valueChanged が呼び出されるので、発生したイベントから、選択された項目が得られます。
1.03:モジュール分割:リファクタリング
モジュール分割によって、それを実現する方法(how)に依存しない、その目的(what)だけを示した抽象表現が可能になります。それを実現する方法を変更しても、その影響はメソッドを「提供する」側のモジュール内に限定されるので、メソッドを「利用する」側のモジュールに影響を与えません〔連続性:modular continuity〕。
1.05:デザインパターン〈GoF〉Observer, #2
モジュールは、相互に独立した小さな問題に分解するのを支援〔分解容易性:modular decomposability〕するとともに、必要なら自由に組み合わせて利用〔結合容易性:modular composability〕できます。ここでは、相互に独立したクラスが、単方向の依存関係を結びます。
》作業中です《
09:双方向通信
ここでは、相互に独立したクラスが、双方向の依存関係を結びます。