0

比方說,我是一家公司的客戶,該公司提供活動。存儲庫與服務 - 訂閱 - 兩者?

它有一個客戶表和一個事件表。 用於訂戶。他們是一個訂閱表(作爲交叉點,具有額外的屬性:AccompaniedByPartner)。

所以我有一個客戶和事件的存儲庫。

但現在的問題是訂閱。

訂閱是否有添加,刪除,修改和列表以及 服務的Repostitory PerformJoinSubscription和PerformCancelSubscription? 還是隻有服務?

回答

3

要回答這樣的問題,問一下這個問題是否可以獨立存在,或者它是否僅在其他情況下才有意義。沒有客戶和事件,訂閱顯然沒有意義,因此不需要自己的存儲庫。在形式上,只有聚合根的實體才應該有存儲庫。

取而代之的是,在Event上提供一個訂閱方法,該方法接受一個Customer參數(或者一個接受事件的客戶的Join方法,具體取決於您希望的地方),並更新關聯的內部集合。當你保存修改過的實體時,你的存儲庫也應該保存對相關對象的修改。像Entity Framework這樣的ORM爲你自動處理。

+0

非常感謝。下面的句子確實是一個簡單的技巧來決定它是一個存儲庫還是一個服務。 「沒有客戶和事件,訂閱顯然沒有意義,因此不需要自己的存儲庫。」 – NicoJuicy 2011-03-31 06:51:28