Confusion with BusinessObject implementations 2004-08-19 - By Robert Taylor
Back So it seems like you would subscribe to METHOD 2 implementation and that the BusinessObject would use (have as a data member) the appropriate DAO to manage (persist and access) its state.
robert
> -- --Original Message-- -- > From: An interest list for Sun Java Center J2EE Pattern Catalog > [mailto:J2EEPATTERNS-INTEREST@(protected)]On Behalf Of Keswani, Mohit > Sent: Thursday, August 19, 2004 12:04 AM > To: J2EEPATTERNS-INTEREST@(protected) > Subject: Re: Confusion with BusinessObject implementations > > > Hi Robert, > > "BusinessObjects encapsulate and manage business data, behavior and > persistence" > The statement implies that persistence is achieved not in Business Layer but > by using DAO layer. > The word which is tricky here is "encapsulate and manage". So business > objects contain the logic to maintain data, behaviour and persistance > through DAO. > > I hope this clears your doubt. > > Regards > Mohit Keswani > > -- --Original Message-- -- > From: Robert Taylor [mailto:rtaylor@(protected)] > Sent: Thursday, August 19, 2004 5:55 AM > To: J2EEPATTERNS-INTEREST@(protected) > Subject: Confusion with BusinessObject implementations > > Greetings, > > I've been reading Core J2EE Patterns, Second Edition and for the most part > it has really been helpful in explaining the architectural entities of the > enterprise. > > However, after reading the section on the business tier and having various > discussions with other architects I'm confused about the following passage > on page 375 in the BusinessObject section (chapter 7). > > "BusinessObjects encapsulate and manage business data, behavior and > persistence." > > This seems to imply that the BusinessObject should contain methods like > create(), update(), delete(), and various finder methods for managing its > own persistence and data access along. > > This, however, does not seem to be the concensus when implementing > BusinessObjects. > > Most architects manage persistence extrinsically to the BusinessObject > itself. > That is, they use the appropriate DataAccessObject to persist and access > BusinessObjects; usually within some type of ApplicationService or > ServiceFacade. > > For example: > > // Creating a new account METHOD 1 > Account account = // populate account BusinessObject AccountDAO accountDAO = > // get an instance of AccountDAO accountDAO.create(account); > > > as opposed to... > > // Creating a new account METHOD 2 > Account account = // populate account BusinessObject account.create(); // > create a new account delegating persistence to AccountDAO > > > > It seems like METHOD 2 is more OO but requires the BusinessObject to become > a facade to the DAO, where as METHOD 1 seems more procedural but has a > clearer architectural separation of responsibility. > > > Can anyone give me some pros and cons on the above two approaches? > Is one better than the other? > > robert > > ==================================================================== > 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) > > > Our name has changed. Please update your address book to the following format: "recipient@(protected)". > > This message contains information that may be privileged or confidential and is the property of the Capgemini Group. It > is intended only for the person to whom it is addressed. If you are not the intended recipient, you are not authorized > to read, print, retain, copy, disseminate, distribute, or use this message or any part thereof. If you receive this > message in error, please notify the sender immediately and delete all copies of this message. > > ==================================================================== > 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) >
==================================================================== 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)
|
|