Java低速GUI Swing 4
■ このスレッドは過去ログ倉庫に格納されています
0628デフォルトの名無しさん
2006/07/05(水) 00:22:52別に難しく考えなくてもさ、Frameに例えばdelegateというフィールドを一個作っといて、
Frameのコンストラクタで、delegateにコントローラーとなるクラスをnewしたものをつっこんどく。
コントローラにはFrameインスタンスを渡して、コントローラ側からフレームにアクセス
できるようにしとくといいね。
Frame内部では、addActionListenerでthisを登録する。だからイベントは一遍Frameで受ければいい。
で、performAction()ではすべてdelegateに処理を委譲すればいい。
処理を委譲する時にイベントのソースでも渡しとくといいね。
もちろん、delegateをイベントリスナとして登録してもいいけどね。
delegate側にはFrameへの参照があるから、Frameのpublicメソッドを介してテキストフィールド
とかにアクセスすれば、なんでも出来るだろ。publicメソッドは必要に応じて自分で用意しろ。
例えばMac OS XのGUI環境なんかMVCだが、コントローラは操作対象となるコンポーネントへ
の参照を全部保持しとるよ。コントローラーがモデルとビューの橋渡しをするので、コントローラー
こそがプログラムの要だな。(Cocoa Bindingで重要度が軽減されたけど)
ところでJSFのバッキング・ビーンとかWicketのPageオブジェクトって、モデルというよりは
コントローラだと思うよ。その裏にドメインモデルがあって、ビューとの橋渡しをするからね。
StrutsのActionもコントローラ。コントローラががんばるのは割と普通じゃないか?
■ このスレッドは過去ログ倉庫に格納されています