我们应该将应用层与HTTP分离吗?

时间:2016-01-23 09:57:19

标签: model-view-controller domain-driven-design

假设您遵循DDD并且拥有域,应用程序和演示文稿(控制器)层,那么应该是否应该将应用层完全脱离了解任何有关HTTP请求以及与其相关的所有其他内容(例如cookie,会话等)的内容

为了说明,请说我们应用层中的CommentingService需要来自名为guestId的cookie的值。该值是作为参数传递给我们的服务的,还是我们可以传递整个RequestHttpContext)对象,让我们的服务从那里提取它。

Commons sense告诉我,如果我想在其他地方重用这个Application Layer,我希望它能与web分离。

1 个答案:

答案 0 :(得分:2)

服务

是的,您需要从任何网络问题decouple您的应用层 Application layer负责管理您的域对象,如聚合,存储库等(业务流程)。

大多数情况下,您将使用提供Rest Api功能的下一层。

如果你这样分解它,你可以使用你的API与CLI,休息,肥皂或你的企业想要提供的任何东西。

贯穿各领域的关注

您需要在cross-cutting concerns中实施application layer,因为您不想为每个外层重新发明轮子。 例如:安全性,缓存,事务管理日志记录。 它没有为您提供business capabilities,因此您不会在domain layer中实施它们,但您可以在application layer中实现它。