2012-02-23 5 views
3

guava EventBusをGUIアプリケーションに入れるのに最適な場所はありますか?モデル、ビュー、またはコントロールにはありますか?または3つのレベルの3つのイベントバス?それとも2つだけ?Guava EventBus:GUIアプリケーションに入れる場所はどこですか?

ありがとうございました。

+0

問題を探して解決策があるようです。イベントバスはクールだと思っているのですか?それとも、それが対処している必要があるからですか? – Ray

+0

私はEventBusを使用しています。なぜなら、それは必要だからです:-)私のSwing GUIはあまり安定していません。私がswing listenerイベントスタイルを使うと、リファクタリングが難しいです。また、モデルとvueのリンクは面倒です。イベントバスのコンセプトはもっと簡単だと思います。 – Istao

答えて

3

イベントバスのデザインパターンは、多くの場合、(言及in this other SO questionなど)Swingアプリケーションで使用されています。

グアバのEventBusは、(アノテーションを使用して)イベント取り扱いを容易にするいくつかのクールなトリックで、デザインパターンのちょうど別の実装です。しかし、デザインパターンを使用する目的は同じです。

私があなただったら、私はあなたのコードを簡素化するためにグアバEventBusを使用しながら、イベントバスパターンは通常、(SO/Googleで)リッチクライアントアプリケーションで使用されているかに見えると思います。

EventBusは、IMO(理想的にはGoogleのGuiceのまたはいくつかの他のDIフレームワークを介して注入)シングルトンであるべきです。

私は、Swing DEVないんだけど、私はGWTの開発を行ってきました。しばらく前には、GWTアプリケーション用のMVP/EventBusアーキテクチャーへの大きな動きがありました。 Swingアプリケーションに同じアイデアを適用できるかどうかを調べることは、それを調べる作業かもしれません。

3

私はあなたが最近持っていたこの経験の誰かを見てみましょうお勧めします。

http://stupidgwttricks.wordpress.com/2011/12/20/using-guavas-eventbus-to-decouple-components-of-a-swing-application/

+0

ありがとうございます。私が理解しているように、アプリケーションレベルでVueからControlerにイベントを送るシングルトンイベントバスです。面白い。 – Istao

+0

正解ですが、GUI用のイベントバスしか持たないと良いでしょう。他のレイヤーがある場合は、これらのレイヤーに他のバスを使用してください。 –

関連する問題