2008-09-16 41 views
7

我在一些POJO中實現了一些域邏輯。我想編寫一個Swing用戶界面,以允許用戶啓動並查看各種域操作的結果。Swing GUI與域邏輯進行通信的最佳方式?

用戶界面和域之間通信的最佳模式/框架/庫是什麼?這可以歸結爲:

  • 用戶界面能夠爲用戶手勢轉換成域行動
  • 域能夠發送狀態/結果信息返回給UI顯示目的

我意識到MVC是一個廣泛的概念,並且已經擺脫了Observer模式(如果我理解正確的話,它的Java實現有一些缺點),但是我想知道這個問題是否有一個公認的最佳實踐?

回答

2

絕對MVC - 像這樣的example明確分裂的事情。與Swing的例子的問題是,他們似乎顯示MVC擺動的東西內的所有工作,這似乎對我不對

0

我已經使用Observer模式(使用AspectJ魔術)過去與一些成功,但發現除非你小心它很快就會成爲一個集羣..呃..輕彈?

它很快變得難以管理,而且最重要的是非常難以調試。

編輯:

要,我們使用SWT,不搖擺,我的答案稍有膨脹,因人而異。我們基本上使用AspectJ來連接從UI組件到模型對象的數據轉換。這些模型對象是愚蠢的POJO。

實際的業務邏輯是通過使用AspectJ'監視'模型對象並且如果它們發生變化而觸發所需的事件來完成的。所以,如果你改變了文本框中的值,AspectJ會觸發並將該值複製到POJO中。如果POJO中的該字段在其上面有業務邏輯的事件,那麼然後觸發。如果該邏輯修改了任何POJO(並且它可以),AspectJ會注意到並將POJO中的值複製到UI組件中。

+0

我想你混淆POJO(http://en.wikipedia.org/wiki/POJO)與JavaBeans。後者是愚蠢的數據存儲,但前者可能確實是具有全部行爲/邏輯的豐富域類型。 POJO的「普通」位僅僅表示不依賴於任何特定的框架或技術。 – 2008-09-16 07:20:47

+0

是的,我的不好。更新後的帖子以反映:) – SCdF 2008-09-16 08:13:13

0

MVC是夢幻般的個別的小工具,但它變得有點不守規矩,當你有很多小部件的pagesforms

一兩件事,可能是值得探討的(我不認可它,我還沒有實際使用它,只是實現的東西對自己非常相似)是Beans Binding Framework (JSR295

相關問題