- 228 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 08:42:33 ]
- >>216
ビジネスロジックは別クラスに実装して、 無名リスナーはUIとビジネスロジックのアダプタとして実装している。 こんな感じ。 JButton b1 = new JButton("OK"): b1.addActionListener(new ActionListener(){ getSomeLogic().doLogic(); }); getHogeLogic()とdoLogic()の中身は想像で補ってくれ。 ビジネスロジックは、UIと粗結合であるべき、フレームワーク非依存であるべき、 というのが信条なので、SwingのAPIが混ざったクラスにビジネスロジックを書きたくない。 イベント処理にXXXListenerが必要というのはSwingの都合でしかないので、 そういう事情はSwingのUIクラスの中だけで隠蔽したい。 以上のような理由から、上記の作り方をしている。 次の課題として、UIオブジェクトとビジネスロジックオブジェクトのバインディングについて 考える必要があるけど、 そこは、ハードコーディングするなり、上位のオブジェクトからsetしてもらうなり、 DIコンテナでインジェクションするなり、好きな方法をどうぞ。 お薦めはDIコンテナだが、不慣れなら他の方法でもいい。
|

|