假设您遵循DDD并且拥有域,应用程序和演示文稿(控制器)层,那么应该是否应该将应用层完全脱离了解任何有关HTTP请求以及与其相关的所有其他内容(例如cookie,会话等)的内容
为了说明,请说我们应用层中的CommentingService
需要来自名为guestId
的cookie的值。该值是作为参数传递给我们的服务的,还是我们可以传递整个Request
(HttpContext
)对象,让我们的服务从那里提取它。
Commons sense告诉我,如果我想在其他地方重用这个Application Layer,我希望它能与web分离。
答案 0 :(得分:2)
是的,您需要从任何网络问题decouple
您的应用层
Application layer
负责管理您的域对象,如聚合,存储库等(业务流程)。
大多数情况下,您将使用提供Rest Api功能的下一层。
如果你这样分解它,你可以使用你的API与CLI,休息,肥皂或你的企业想要提供的任何东西。
您需要在cross-cutting concerns
中实施application layer
,因为您不想为每个外层重新发明轮子。
例如:安全性,缓存,事务管理日志记录。
它没有为您提供business capabilities
,因此您不会在domain layer
中实施它们,但您可以在application layer
中实现它。