我有一大堆不同實體的Java服務器應用程序。到目前爲止,每個實體頂級實體都有其自己的CRUD服務。就頂級而言,我的意思是能夠獨立存在的實體樹的根。在服務層組織服務?
現在我進入了我的Flex客戶端的核心,並發現我需要/寫許多不同的查詢。但是最好放置這些查詢?
說例如,我有一個查詢來查找所有「foos」基於他們與某個「欄」的關聯。目前該查詢位於「foo」服務(findAllByBar)上,但我發現在「bar」服務(findFoos)中使用它(也是?)會非常方便。另一方面,我也可以創建一個查詢服務並將所有查詢包含在那裏。
這是一個很好的做法嗎?
這就是我今天的情況,但考慮客戶作爲客戶實體並且想要獲得訂單的情況。這應該成爲客戶服務的新發現者還是客戶應該調用您已經擁有的訂單服務的查詢? – HDave
如果具有客戶實體的視圖生成請求客戶訂單的事件,那麼它真的會使哪個類滿足該請求?視圖不需要知道這是怎麼發生的,並且服務不應該知道請求發起的地點或者請求的對象知道關於情況的其他信息。 –
HDave:您會在訂單服務中添加查找器以查找客戶的訂單..因爲您需要的實體是訂單,所以訂單服務是提供此信息的適當位置..您也可以考慮將查詢服務與商業運營服務類的CQRS理論..所以你可以在OrderQueryService和OrderService –