2012-08-03 17 views
0

我經常遇到這個問題。想不到如何面對這個問題。現在我得到了這個優秀的論壇!我相信這裏的專家會幫助我解決這個問題。如何在java項目中管理合適的結構

這不是關於某個特定代碼段的問題。我有能力(如我所想)在java中進行一些高級項目。這意味着,只需完成項目即可得出確切的結果。

但問題是,雖然我可以完成它一些如何,我不滿意的類的管理等。其實我不知道如何正確地管理它。我會解釋考慮我目前正在從事的項目(我不是專業的編碼員,這將是我的自學)。

我正在研究數據庫管理系統(MySQL + Java)。在那裏我希望在那裏實現幾個功能。流程大致如此。

1. Login 
2. Main window 

主窗口會是這樣的。

enter image description here

在左側面板中,你可以選擇你需要做什麼。

Eg. 

*. Add some entries to the database 

*. Search database 

*. Other..(will be add later) 

有人可以告訴我如何管理所有這些東西,兩個框架和幾個面板。

我所做的就是這樣。

我已經寫了一個managerClass它有主要的方法。然後它會首先打電話給loginFrame。確認後,loginFrame調用managerClass中的方法,加載mainFrame。但我保留在所有框架,面板等managerClass的參考。因爲我保存managerClass所有所需的信息,如用戶名稱等..

但是,修改和調試時,事情變得非常困難。因爲我沒有按照任何具體的規則做事。我將不得不修改幾乎所有的類來做一些修改。我雖然很多和海

回答

1

從我能理解你的應用程序,你的主要問題是你的組件和應用程序的不同層(演示,交互控制,域邏輯)之間的耦合。我會建議使用兩種設計模式(或樣式),可以幫助這裏:

  1. 模型 - 視圖 - 演示:從控制用戶交互的邏輯呈現(視圖)分開型號/域邏輯。我最近在一個大型應用程序中使用了它,我發現它確實有助於以一種簡潔的方式分離問題並使測試變得更加簡單。請不要將它與模型 - 視圖 - 控制器模型混淆,該模型很接近,但有許多問題。有一個nice article by Martin Fowler描述這兩種模式
  2. 在您的組件之間採用event based interaction。而不是調用Manager類的Login框架,讓它觸發一個事件(「用戶認證」),由相關組件處理。例如,您可能在主窗口中有一個小型的用戶帳戶詳細信息面板,直到觸發此事件纔會顯示該面板。不幸的是,我不知道任何普通Java的事件框架(我懷疑你是用什麼開發的)我使用的是Google Web Toolkit。
+1

感謝您的指導。我還沒有在我的項目中採用任何這些模式(我知道有這種模式)。希望是時候這樣了。我發現你的兩個鏈接很有幫助。我還沒有完全通過他們,但似乎他們會爲我的問題有一些答案。感謝你的付出。我會稍後再提供一些反饋。 – Anubis 2012-08-03 06:47:58

+2

我發現[這個線程] [http://stackoverflow.com/questions/2105121/what-to-use-mvc-mvp-or-mvvm-or] **非常非常* *有用。順便說一句,謝謝@pablochacin,我會接受你的答案.. – Anubis 2012-08-04 04:44:20