我对域驱动的设计架构有疑问。在尝试使用REST之前,一切看起来都很不错。我应该使用DTO而不是前端上的实体。
我的问题是:
我应该使用 web模块 并坚持使用DTO吗?这是正确的方法吗?
答案 0 :(得分:2)
因此,即使您按照“ DDD”工作,也必须做出决定-如何处理这些方面。
答案 1 :(得分:2)
您应该将REST视为允许访问应用程序层服务的众多“端口”之一。 REST,RPC,Websocket等服务将调整输入并将其映射到应用程序层调用,反之亦然。在每个服务边界,您仍然可以灵活地调整响应,而不必与应用程序服务方法响应进行1-1映射,但是可以。
答案 2 :(得分:0)
根据Vaughn Vernon的《实现域驱动设计》一书,DTO位于应用程序层中。
答案 3 :(得分:0)
理想情况下,域模型应该由工厂创建。因此工厂可以接受DTO并返回Domain模型的实例。或者,您可以使用接受DTO的Builder模式来创建Domain模型。这样,您的域模型就不会受到DTO的干扰,并且体系结构图中的Application层应接受DTO作为参数。
在您的图中,我不确定应用程序层的目的是什么。因为我们所谓的应用程序应该是领域模型。