2

我是我們生產java web服務和發佈到服務器的項目之一的一部分。其他一些Java應用程序正在通過extjs使用Web服務。價值對象vs數據傳輸對象

在那個生產者應用程序之後是域驅動設計。 我們使用了兩種類型的pojos,域對象和DTO對象。兩個類都具有相同的屬性變量。 DTO類正在實現Serializable類。

首先,我們從db調用創建domians對象,然後將域對象轉換爲dtos並在websevice中發佈。

現在我想知道的是這是一個很好的做法,有這兩種類型的對象?爲什麼dtos正在實現serialzable(一個原因可能是維護對象的狀態,而webservice通過網絡調用---這個原因我發現在網絡中,但我不清楚)?

任何鏈接這個或專家的解釋是受歡迎的。

在此先感謝。

回答

2

使對象Serializable能夠轉移。它允許將Object轉換爲字節,然後將字節轉換爲Object

請注意,通常DTO比通常具有許多用於業務處理的屬性的域對象變得更輕(因爲要前往客戶端)。

所以基本上你可以有例如多層項目:映射到數據庫

  • 業務層將處理業務規則

    • 域對象
    • 從域的變換對象DTO的
    • 的DTO被傳輸到客戶端

    一些閱讀:

    http://www.oracle.com/technetwork/java/transferobject-139757.html

    https://softwareengineering.stackexchange.com/questions/171457/what-is-the-point-of-using-dto-data-transfer-objects

    Difference between DTO, VO, POJO, JavaBeans?