2012-02-17 84 views
3

在DDD中添加@Stateful,@Stateless,@WebService等的應用程序層(應用程序服務)?從下面的鏈接看來這是對的。DDD和應用程序層

第二個問題:如果涉及到存儲庫的所有方法調用都包裝在應用程序服務中,我已經創建了一個存儲庫類?或者我可以直接在JSF中支持bean來使用存儲庫類嗎?何時以及如何放入應用程序層。我不明白EJB在這個artitechture中的屬性。

應用層:該層協調應用程序活動。它不包含任何業務邏輯。它並不包含業務對象的狀態,但它可以保持應用程序任務進度的狀態。

http://www.infoq.com/articles/ddd-in-practice

回答

5

的Java EE主張貧血模型,它是DDD的相反。如果你想要DDD,你的實體也必須執行業務邏輯,這與服務層和實體的分離是相反的。

+1

那麼,那麼,那些擁有@Stateful/@ Webservice等等的域/模型呢? – LuckyLuke 2012-02-17 07:19:51

+0

是的,但你不能那麼容易。 JavaEE很難使用適當的DDD – Bozho 2012-02-17 07:27:33

+0

那麼你推薦什麼?你如何構建你的應用程序? – LuckyLuke 2012-02-17 07:37:36

0

假設在DDD體系結構中,應用層和所有其他層只與系統的下層進行通信。由於這個原因,應用程序服務包裝倉庫,但是如果您使用依賴關係檢查,則可以在應用程序服務層中重新使用所有存儲庫

AppService的實際工作是協調包含其他服務或存儲庫或包容性域服務的操作。

在您的實體必須成爲業務邏輯只關於您自己的實體。始終遵守單一責任原則(http://www.developerfusion.com/article/137636/taking-the-single-responsibility-principle-seriously/)。

我希望對你有所幫助