I've been discussing this with a colleague.

He mentioned one benefit of myBean.save() is that if your bean is composed of 
other beans (and they are all composed with their own DAO's) then the service 
layer doesn't need to know too much about the composition of the beans.

myBean.save() therefore runs save() on its own DAO as well as save() on its 
composed beans.

If it's the service layer doing the myDAO.save(myBean) then it would also have 
to run save() on other DAO's ...either that or the DAO would have to then call 
save() on other DAO's etc. I can see this getting messy.

I think I can see the pros and cons of both options now.

Alan
________________________________________
From: [email protected] [EMAIL PROTECTED] On Behalf Of Peter Bell [EMAIL 
PROTECTED]
Sent: 31 January 2008 12:54
To: [email protected]
Subject: [CFCDEV] Re: myBean.save() versus myServiceObj.save(myBean)

It isn't the DAO that'd be a transient - it'd be the User business object
that (if ColdSpring served it up) would be a transient (singleton=false).
You'd inject the singleton DAO into it.

Proviso: Some people on the lists have recommended NOT using ColdSpring for
transients, but creating a custom factory instead (or I use LightWire).
Others have used ColdSpring for instantiating their transients without
problems.

Best Wishes,
Peter


On 1/31/08 5:30 AM, "Michael Sharman" <[EMAIL PROTECTED]> wrote:

>
> Hi Peter,
>
>> - For user.save() you need to inject a DAO into your transients which
>> requires ColdSpring with singleton=false
>
> Would the DAO composed into the User bean not be a singleton? Why
> would you need a 'per instance' DAO for each and every User bean?
>
> On Jan 31, 4:16 am, Peter Bell <[EMAIL PROTECTED]> wrote:
>> Hi Alan,
>>
>> Been pretty much beaten to death on cfcdev over the years. Short answer, it
>> isn't right or wrong - more a matter of preference.
>>
>> I prefer syntactically User.save() to UserService.save(User), but that's a
>> pure preference Others prefer it the other way round.
>>
>> Provisos:
>> - Don't put SQL in the bean - eithr way the saving should be delegated to a
>> DAO
>> - For user.save() you need to inject a DAO into your transients which
>> requires ColdSpring with singleton=false, a custom factory or lightwire.
>> - If you need to support remote method cals, you're going to need a
>> Userservice.save() method. I have one for remote calls ad it just delgates
>> to a new bean it creates. Some may prefer just to have the service do the
>> save all the time, but again it's down to preferences.
>>
>> Best Wishes,
>> Peter
>>
>> On 1/30/08 12:03 PM, "Alan Livie" <[EMAIL PROTECTED]> wrote:
>>
>>
>>
>>
>>
>>> We currently use the service object to save a bean (which uses a
>>> gateway/DAO its composed with to do the work)
>>
>>> Another developer has suggested the bean should save really be
>>> responsible for saving itself (again using a DAO its composed with).
>>
>>> This looks like a good one for a discussion! :-)
>>
>>> Alan- Hide quoted text -
>>
>> - Show quoted text -
> >






--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"CFCDev" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/cfcdev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to