2011-06-23 26 views
1

我在獨立的SWT/JFace(我不想使用RCP)編寫我的第一個桌面Java應用程序;但這不是語言問題,所以不要關注我使用的技術。UI應用程序體系結構的想法

只是用幾句話來解釋軟件是什麼,主窗口有一個標籤文件夾,每個標籤項目代表一個用戶可以編輯的文件。文件由結構化查看器表示。該應用程序有菜單和工具欄。該選項卡中有一個上下文菜單。

我的問題是關於應用程序的體系結構。 我不知道如何製作一個好的設計架構,以便代碼正確組織。

每一個動作(在菜單中,在上下文菜單和工具欄)可能會改變選擇的選項卡項目的內容,所以我不知道該怎麼做:

1的標籤項目暴露了不少市民的所有操作都會調用的方法?因此該選項卡項目將具有很多功能: 示例:在菜單中添加新行菜單操作或上下文菜單隻調用該選項卡項目的addNewLine()方法?

2-作爲控制器的類,管理選項卡文件夾和所有選項卡項目並公開許多方法。 示例:打開的文件菜單操作調用控制器上的openFile()方法,添加新行操作調用知道活動選項卡的控制器,並將該行添加到需要的位置。

3-每個動作都是一個具體的類,只需在選項卡項上調用盡可能少的方法來刷新UI。 示例:打開的文件菜單操作具有打開「打開文件對話框」的邏輯,讀取文件數據並直接在UI組件上調用類似addNewTab(ApplicationObject my object)的東西

4- ...?

從你的角度來看,哪一個是最佳實踐? 你知道我在哪裏可以找到像這樣的桌面應用程序的設計示例/文檔?

由於提前,

Fluminis

回答

0

我建議你閱讀如何設計活動的基礎應用(可能是爪哇,機器人,Flash或VB.Net)和具體的資源是書Growing Object-Oriented Software。在這本書中,作者解釋瞭如何構建和測試Swing應用程序,並且他們使用的設計是完美的(當然,從我的角度來看)。