我有一個我從來沒有能夠解決一個問題:分層架構
考慮這兩種架構
UI layer
|
Application layer
|
Domain Layer
|
Infrastructure Layer
第二
Client Tiers
|
Presentation Tiers
|
Business Tiers
|
Integration Tiers
|
Resources Tiers
什麼是他們之間的區別。
實體bean在這些架構中的位置。如果我有一個帶有實現業務邏輯的對象的業務層,爲什麼我必須在實體bean中添加行爲。我在某處讀到,這是一種反模式,讓域模型對象沒有行爲。
感謝
更新
這實際上是一個項目(培訓),我需要做的就是我在分佈式系統中MSC。
這些其實都是我使用
的Struts 2 JPA HSQLDB
所以,如果我的理解以及
我的應用程序由
客戶端層(網絡瀏覽器技術) 表示層(struts 2) 業務層(POJOs + JPA) 集成層(帶有休眠DAO) 資源層(HSQLDB)
但是,作爲演示文稿,業務和集成層是在同一臺服務器上執行的(tomact),我只有三層架構。我對嗎 ?
至於在我的JPA對象中包含行爲,通常這是我以前做的事情: 爲每個JPA實體都有一個dao。 有一個可以管理所需業務邏輯的bean(如EJB)。所以我從不在JPA對象上放置行爲。
說例如我想提出購買請求。我會有一個CatalogueManager,它可以幫助我與物品,供應商進行互動。我也會有一個EmployeeManager,它可以幫助我與員工互動。最後,一個PurchaseRequestManager將使用前兩個業務對象來創建一個PurchaseRequest。
現在你告訴我的是將PurchaseManager中的方法放在PurchaseRequest JPA實體中,並對EmployeeManager =>中的方法執行以將它們放入Employee JPA實體中。
但是如果我的僱員對象也用於人力資源部門會發生什麼,我還需要將其他方法放在那裏。對於大型應用程序,我會在員工JPA實體中使用很多方法。這不會是反效果的嗎?
感謝