2009-06-13 7 views
2

私は4つのボタンがあり、私はそれぞれが異なることをしたいと言います。私は、ボタンが押されたことに基づいて別のことをする大きなスイッチのステートメントを望んでいないし、ボタンのクリックごとに別々のメソッドを必要としたくない。コマンドパターンはこれを解決する良い方法ですか?コマンドパターンを使用してメニューの複雑さを減らすにはどうすればよいですか?

答えて

5

はい、コマンドパターンの一般的な用途です。それぞれがexecute()メソッドを提供する一連のクラス(例えば、Open、Save、Print)を持っているとしたら、これらのクラスのインスタンスをボタンに関連付けることができ、ボタンのonclickイベントはexecute )関連するコマンドが何をするのかについての詳細を知らなくても。

Wikipedia articleは、コマンドパターンの他の一般的な用途を示しています。

+0

しかし、ボタン内での関連付けを最適にするには(たとえば、ICommandへの参照を保持する特別な「CommandButton」クラスを持っている、または何らかのルックアップでクラス外にある? – Iain

0

はい。私は、メニューのクリックとツールバーのクリックと同じアクションで結びつけるのを助けてきました。それはかなりうまくいく。それは何にも革命を起こすものではありませんが、より洗練されたコードを提供し、厄介なswitch文を取り除きます。

私はあなたにいくつかの例を与えるために掘り下げようとするコードをどこかに持っています。

関連する問題