2014-02-07 82 views
1

存在被層疊這樣從底向上一個JavaEE應用:層相互交談中的JavaEE

實體 - >數據訪問對象(DAO) - >控制器 - >門面

在這個架構中,Controllers應該如何相互通話?他們可以調用對方的方法,還是必須通過DAO層完成?

+0

Controller是業務層還是UI控制器?如果不是,服務/業務層在哪裏? – kostja

+0

@ kostja,控制器只保存業務邏輯。 UI實際上是通過Facade可以訪問數據的JSF。 –

回答

1

假設控制器代表您的案例中的業務層。

服務層中的EJB具有自己的層次結構是很常見的。在爲客戶和UI提供更多通用功能的同時,EJB可以爲彼此提供精細的功能。所以是的,同一層的物體可以相互交談,並且經常被設計來這樣做。

其背後的基本原理是從內部功能中抽象外部API以及減少重複。

編輯:請不要猶豫,當引入新的依賴關係。在耦合,可測試性和架構一致性方面常常有缺點。你不應該在同一層'下面'使用一個圖層甚至是一個對象 - 這意味着從抽象度較低的對象到抽象度較高的對象。感覺不確定往往是一個暗示兩次。

+0

謝謝你。我很猶豫要把控制器注入對方。 –

+1

非常歡迎:)當結果不清楚時,猶豫不決是正確的選擇。請參閱編輯。 – kostja