DTO的设计模式



我有一个使用jdbc进行数据库调用的web应用程序。我有一个服务,dto和dao层。我有一个很大的request xml。我可以将请求对象传递给dao方法,还是应该将请求传递给dto模型,然后将dto对象作为参数传递给dao方法?哪种方法是正确的?

public TestServiceClass addSurveySubmitDetails(TestRequestXML testRequestXML){
          //call to dao method
          TestDao = testdao = new TestDao(testRequestXML);
   }
         OR
    public TestServiceClass addSurveySubmitDetails(TestRequestXML testRequestXML){
         //create dto object
         TestDTO testDTO = new TestDTO();
         testDTO .setId(testRequestXML);
          //call to dao method
          TestDao = testdao = new TestDao(testDTO );
   }

哪种方法是正确的??

我认为没有正确或错误的答案。我觉得这太主观了。

但是我个人喜欢在控制器和服务之间有一个薄层(假设你使用MVC模式),它的唯一任务是将请求(XML, Json等)转换为域对象。

当您有复杂的域对象或需要在视图中显示信息的聚合时,它非常有用。

这取决于您的体系结构,但由于DTOData Transfer Object,因此没有理由在服务层和dao层之间使用它们。

你可以有一个服务层,我想在下面的代码示例中,但无论如何,这取决于你的应用程序的架构。

   public TestServiceClass addSurveySubmitDetails(TestDTO testDTO){
          TestRequestXML testRequestXML = testDTO.getId();
          TestDao = testdao = new TestDao(testRequestXML);
   }

更多关于DTO的信息

数据传输对象

LocalDTO

YAGNI是个好主意,在可能的地方保持简单的设计

dto实际上是用于远程调用的。如果要通过网络将数据发送到不同的虚拟机,请使用DTO。如果要将数据发送到同一虚拟机上的另一个本地类,就不要使用DTO。DTO只是远程传输数据的一种有效方式。它在其他任何地方都没有任何优势。

最新更新