作爲一個Java Swing新手,我在將用戶界面邏輯與域邏輯分開時遇到了一些麻煩。從java中的域中分離用戶界面Swing
我有一個JFrame包含JLabel,JTextField和JButton的小(平凡?)Swing應用程序。當按下JButton時,彈出一個JFileChooser對話框。選擇文件後,JTextField包含文件的絕對路徑。目前爲止沒有壯觀的景象。 我想完成的下一件事是,文件的絕對路徑被「注入」到文件管理器類中,該文件管理器類將在進行選擇並更新JTextField時處理文件的實際處理(每次文件是使用JButton進行選擇)。
問題,我有:
- 如何讓文件管理器知道什麼時候開始讀文件? (例如,計算該文件中的行數)
- 如何以UI層內共享最少信息的方式實現域圖層?我應該添加一個文件管理器實例到用戶界面嗎?
- 我應該使用JTextField的值作爲文件管理器的參考,還是應該使用JButton操作將值設置到文件管理器中?我的意思是:使用JTextField的propertychangelistener或使用JButton的actionlistener?
- 我應該使用filebean來存儲域層中的文件的絕對路徑還是直接將其插入到文件管理器?區別在於:當我使用屬性更改偵聽器時,可以在UI輸入更改時更新絕對文件路徑的值,但是當我使用構造器或setter直接插入值時,必須處理文件管理器中的更改而不是處理filebean中的更改。
- 如何在域邏輯中的文件管理器中引用用戶界面中使用的filebean?
- 域邏輯是否與業務邏輯相同?我的意思是:文件管理器類應該在包中whatever.b邏輯和filebean類應該在包中的whatever.domain ??
應用程序被分成多個包:
- 什麼:主類
- whatever.presentation:搖擺的東西
- whatever.domain:數據的東西
- whatever.logic:應用邏輯
我希望我已經夠清楚了......
在此先感謝您的幫助。
關於文件管理器的責任的好處。事實上,文件bean是文件管理器的責任。它與文件管理器沒有區別,因爲文件管理器需要這些信息,而視圖並不需要它:它只是向文件bean中插入文件名的一種方式。謝謝! – user504342 2012-07-17 10:32:51