DAO relation with business object 2004-06-21 - By Sullivan, Sean C - MWT
Back These resources may be helpful:
http://corej2eepatterns.com/Patterns2ndEd/DataAccessObject.htm
http://java.sun.com/blueprints/corej2eepatterns/Patterns/DataAccessObjec t.html
http://daoexamples.sourceforge.net/related.html
http://www-106 (See http://www-106.ora-code.com).ibm.com/developerworks/java/library/j-dao/
-- --Original Message-- -- From: An interest list for Sun Java Center J2EE Pattern Catalog [mailto:J2EEPATTERNS-INTEREST@(protected)] On Behalf Of Deblauwe, Wim Sent: Monday, June 21, 2004 8:09 AM To: J2EEPATTERNS-INTEREST@(protected) Subject: DAO relation with business object
I've looking at the DAO pattern lately and have some problems with it. Especially what is ment by Business Object and ValueObject?
In my words I would call a class User that is a POJO a Business Object, and I would place it in a package "business".
I would then have a class ValueUser in my data package that has all the same methods as business.User. In fact, business.User is just a delegate to data.ValueUser.
Is this already correct? Or is the business class something else and is my User class already a ValueObject?
2nd problem: When I then create my DAO, e.g. UserDAO. This would typically reside in the data package. There are 2 options then:
public User getUser(int id);
or
public ValueUser getUser(id);
If my business.User class is already a ValueObject, then a class from my data-layer is dependant on a class from my business-layer. This would be undesirable I think. Otherwise we refer to the ValueUser which is in the same layer, so this seems ok. But when you try to unit-test User when it is just a delegate for ValueUser, you will do this:
ValueUser valueUser = new ValueUser(); valueUser.setName( "testName" ); ... some more here
User user = new User(); user.setValueObject( valueUser );
assertEquals( user.getName(), "testName" );
And I really don't like this. You have to create 2 objects, where 1 should be enough.
===================================================================Companion Site: http://www.corej2eepatterns.com J2EE BluePrints: http://java.sun.com/blueprints/corej2eepatterns List Archive: http://archives.java.sun.com/archives/j2eepatterns-interest.html Unsubscribing: email "signoff J2EEPATTERNS-INTEREST" to listserv@(protected)
|
|