Hallo,
ja. Wobei spezielle DTO's eigentlich nur in Ausnahmefällen notwendig sind (u.U. beim Datenaustausch zwischen unterschiedlichen Schichten (Präsentationsschicht, Integrationsschicht / Geschäftslogikschicht) , beim Datenaustausch zwischen zwei (Java) Anwendungen) bzw. in manchen Architekturen komplett vernachlässigt werden können (Beispiel.: kleine JBoss Seam Webanwendung...etc.)
Manchmal bietet es sich auch an die Business Objects direkt zwischen den Schichten hin und her zuschicken je nachdem welche Anforderungen man an das Domain Model hat (Lazy Loading, Datenvolumen etc.)
Das Assembler Pattern verwendet man in der Regel so, dass man ein normales Business Object übergibt und eine spezielle "Sicht" auf dieses Business Object als ein DTO bekommt. Beispielsweise könnte es sein, dass man eine Webanwendung hat wo man in einer Liste verschiedene Daten eines Business Objects anzeigen möchte. Nun sind die
Daten die man anzeigen möchte aber nicht direkt an dem Business Object enthalten sondern man muss u.U. über mehrere Level Assoziationen traversieren.
( order.getCustomer().getAccount().getId() ). U.U. steht nun in der Präsentationsschicht nicht genügend Kontext zur Verfügung (beispielsweise könnte die entsprechende Hibernate Session an dieser Stelle nicht verfügbar sein...etc.) weshalb die Daten vorbereitet werden müssen. Dazu könnte man nun hingehen und die gewünschten Business Objects (mit allen aAsoziationen) entsprechend komplett voll initailisieren und die dann an die Präsentationsschicht übergeben. Eine andere Variante wäre hier, nur die benötigten Daten aus der Persistenzschicht anzufordern ohne die ganzen Business Objects voll initialisieren zu müssen. Man erzeugt sich also nur eine "View" auf die eigentlichen Business Objects.
Weiterhin werden DTO's auch oft noch mit zusätzlichen "dirty markers" ausgestattet. Wird ein solches DTO zu einem entfernten Client geschickt, dort manipuliert und wieder zu uns zurück gesendet, kann man anhand der dirty markers erkennen, wo, was geändert wurde.
Was sind denn deine konreten Fragen dazu?
Gruß Tom