基于EJB的J2EE多層架構應用中,經常涉及的一個問題就是如何在各層之間傳遞批量數據,比如客戶端對服務器端數據的批量讀寫操作等。比如需要得到實體EJB的屬性,直接的方法是多次調用不通的屬性,如下圖10:
圖10:低效的數據傳遞方式
但這種方法容易導致許多問題,比如性能以及代碼的復雜度等,更有效的辦法是在一個調用中得到所有需要的屬性。所以可以引入Data Transfer Object來封裝所需要的屬性,并在客戶與服務器端通過傳遞該對象一次實現對數據的操作。如下圖11:
圖11:通過DTO傳遞數據
DTO為普通的Java Class,通常是服務器端數據的快照。由于網絡傳輸的需要,DTO應該實現java.io.Serializable接口。
DTO的設計有兩種模型:Domain DTO以及Custom DTO。
Domain DTO僅僅實現對服務器數據的拷貝,通常與實體EJB為一對一的關系(也存在為多個相關聯的實體EJB對應一個Domain DTO)。Domain DTO通常除用于讀取更改實體EJB屬性外也可用于創建實體EJB時候。實體EJB與Domain DTO對應關系如下圖12:
延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/