一個簡單Swing程序的架構

Java Swing程序不像J2EE程序那樣有框架有模式可遵,反倒顯得很自由無所拘束,但如些一來反而顯得程序代碼雜亂無章,如果只是寫個示例程序的話倒也無所謂,但隨着代碼的增多或過段時間在回首時就發現代碼很不容易看懂,不以維護。我雖無大型Swing程序的經驗,但平素喜愛用Swing寫寫工具程序以練練手,因此我以下是我的經驗總結。下面以些圖來表示

一個桌面級程序必然是以一個主界面展開的,在Swing中這個主界面是派生自JFrame的,其中有菜單、工具欄、狀態欄、內容面板(contentPanel)和一些相應的按鈕,這些界面元素即可以派生自某個類或調用Swing的現成類,但最後總要添加到界面中,而爲了與用戶交互,控件要和一個實現了Action接口的類綁定,因此在界面層中我分別實例化了ActionsManager和Functions對象,我專門寫了一個ActionsManager類的用以管理程序中所有的Action接口的類,通過鍵值對集合把某個控件的動作與相應的控件綁定,當然你可能會覺得這很無聊,還不如在構造控件時直接將動作與之綁定就可以了,但這樣做時很沒有重複性,如果某個動作即要被按鈕實現又要被菜單實現,還要被工具欄實現的話就要重複寫三次代碼,如果還要考慮其禁用與否就更麻煩了,因此我乾脆將動作類統統封裝在一個集合中統一調用,比如如下的代碼

然後在所有的控件容器類中實現相關的功能,讓ActionsManager類的相應Action接口類來調用即可,而將界表示層和業務邏輯層分離已是衆所皆知的道理,因此在ActionsManager內的主界面對象實例可以訪問界面的UI Manager方法集,由UI Manager再調用相應的業務邏輯層,即Functions內的方法,並把結果返回至UI Manager,以此來實現動作層、表示層和業務層的簡單框架。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章