我們的新項目剛剛開始,我們遇到了與其架構相關的問題。業務層模塊的分離
我們有一個3層arhitecture:
- WebUI中
- 業務
- DataRepositories
每一層都有參考,以它下面的層。通信與我們所說的entities
和business objects
(BO)做如下:
DataRepositories <--entities--> Business <--BO--> WebUI
<--X-->
使用X類型
的對象,所以,我們有例如UserEntity
爲實體User
爲BO通信手段。另一種類型是門票,它又有TicketEntity
和Ticket
。
目前,我們必須通過具有其中明確界定,並不會與其他的片像Tickets
互動DataRepositories,商務和WebUI類似Accounts
爲用戶層的一些獨特的垂直切片。
現在的問題是,一張票有一個買家是一個用戶,我們不知道我們的架構中應該連接票和用戶的位置。業務組件是否應該在它們之間進行交互,或者數據層應該將用戶映射到票據?
更具體地說,我們有一個創建票據的方法,該票據駐留在Business中並從WebUI調用。它將票據和「用戶」的細節作爲參數,我們不知道它是否應該是類型用戶的對象或只是用戶名/ ID。如果我們在調用CreateTicket之前傳遞演示文稿應該得到的用戶對象。但是,如果webui傳遞了該id,那麼業務層應解析用戶對象,這將需要添加對Tickets(Business)中的用戶業務組件的引用。