DTOs don't have any logic. They only have fields (state). They are used when transferring data from one layer/subsystem to another Domain objects can have logic (depending on whether you are using domain-driven design or have anemic data model) and they are usually related to the database structure If using anemic data model (i.e.
Your domain objects don't have any logic), DTO and domain object can be the same object Related: techblog.bozho.net/?p=427.
DTOs don't have any logic. They only have fields (state). They are used when transferring data from one layer/subsystem to another Domain objects can have logic (depending on whether you are using domain-driven design or have anemic data model) and they are usually related to the database structure.
If using anemic data model (i.e. Your domain objects don't have any logic), DTO and domain object can be the same object. Related: techblog.bozho.net/?p=427.
1 handy term anemic.. – Chin Boon Jul 18 at 12:37.
Transfer objects are often serializable due to the naature of its use, this is especially pertinent if the calls are remote and between jvm, or they will be used in a way that promotes serializaation, such as stateful session beans. For this purpose, transfer objects must be suscepitble to such "treatment", I.e. Transfer objects implement serializable.
The reverse may not be said of domain objects. Domain objects may contaain behavior, however dto are merely a transportation medium.
1 - good call on serialization - I'd forgotten that. – Adrian K Jul 18 at 12:16.
A Data-Transfer-Object (DTO) is used to exchange data between different parts of an application (such as different layers), or different applications. DTO's are simply a "dumb" data structure. They are used in contracts / interface definitions - this means that any component that uses one of these interfaces "knows" about these objects.
Domain Objects (DO) (and the classes from which they are derived) implement business logic, as such they are only located in the Business logic layer / Domain (the essential meaning is the same even if the terms are different). Because DO's implement business logic they can be complex, and can include methods, events and so on. One more point about DTOs According to the Martin Fowler school of thought a DTO is a combination of several objects (each of which would be what most people would commonly call a DTO); the rationale is that in situations it's less expensive to send larger packages of data less frequently (as opposed to being "chatty" and sending many small packages constantly across the wire).
So where most people would view a DTO as a single object Martin F is saying a DTO is simply an "envelop" that contains several discrete (and possibly unrelated) objects. Not a big issue IMO - most people take the view that a DTO is as per my definition at the top of this answer (or something close to it).
Thanks for your reply. Does it mean that DTOs are used primarily towards the presentation layer, while DOs are used towards the backend only? – testndtv Jul 18 at 12:02 No, DTO's are not restricted towards the Presentation layer.
– Adrian K Jul 18 at 12:15 +1 dto are generally used across tiers, however it is not limited by that. – Chin Boon Jul 18 at 12:35.
I cant really gove you an answer,but what I can give you is a way to a solution, that is you have to find the anglde that you relate to or peaks your interest. A good paper is one that people get drawn into because it reaches them ln some way.As for me WW11 to me, I think of the holocaust and the effect it had on the survivors, their families and those who stood by and did nothing until it was too late.