2012-02-17 85 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/)。

我希望对你有所帮助