簡體   English   中英

Java應用程序的分層體系結構設計

[英]DESIGN of layered architecture for a java application

我有以下架構的代碼

1)Business objects  (Represents business object (BO) )
2)DataBasedModel classes (Maps to DB tables)

分層架構

1)DAO (reads /write BO to DB, convers BO to DBModels and vice versa)
2)Each table has a DAO
3)I plan to have a manager layer on top of DAO.Manager will call DAOS.Manager handels business logic.And transactions

考慮我有3個表A,B,C

1)BOs  : are A_BO ,B_BO ,C_BO
2)Managers :A_M,B_M,C_M
3)DAOs :A_DAO,B_DAO,C_DAO


All write operations of BO are handles by respective Manager. 
EG : Two write into A_BO manager A is always called.

現在,對於某些操作,我需要訪問多個表/ BO。

For example to insert a record in A i need to check something in table B.  <br>
Write of A is handled by A managed. 



現在的問題是,經理可以打電話給B_DAO嗎? 還是只應調用B_MAnager? 不能訪問B_DAO?

我對應該采取哪種方法感到困惑? 一些問題:如果經理打電話給其他經理,則我不能在經理上放置@Transaction Annotation,並且我需要在Manager之上再加上一層

我看不到您的DAO層和管理者層的區別。 他們似乎負有相同的責任:管理實體。

另一方面,我想念諸如業務層之類的東西。 在業務邏輯內部,您將擁有需要訪問多個實體的用例。 例如,要存儲新的帳單,您將具有帳單數據,客戶帳戶,也許還有倉庫庫存以及許多其他實體的更新。 所有這些更新應在一個事務中進行。 因此,您應該將當前DAO和管理器層中定義的所有功能視為一個持久層,該功能只能在事務內部使用。 在每個實體上只有一個DAO是一種常見的模式。

事務應該由某個業務層觸發,其中所提供的功能可以根據您的應用程序邏輯做一些有用的事情。 這也是可以實現事務划分和其他方面(如權限檢查)的地方。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM