Fair enough. Since I use Transfer I don't have to deal with "DAO" type CRUD
stuff anyway, so my gateways tend to be for aggregate/reporting queries
anyway. But in the cases where I'm not using Transfer I do just leave them
in the Gateway as well.

On Mon, Jun 23, 2008 at 5:09 AM, Alan Livie <[EMAIL PROTECTED]>
wrote:

>
> I sort of agree with Brian but found I rarely touch DAO objects once they
> are in place but often have to add stuff to gateway objects (new report or
> new complicated SELECT query the dba wants for performance reasons).
>
> So following the 'encapsulate what varies' idea I keep them separate.
>
> Alan
> ________________________________________
> From: [email protected] [EMAIL PROTECTED] On Behalf Of Brian
> Kotek [EMAIL PROTECTED]
> Sent: 20 June 2008 22:06
> To: [email protected]
> Subject: [CFCDEV] Re: Doubts about Best Practices
>
> On Fri, Jun 20, 2008 at 2:49 PM, Ronan Lucio <[EMAIL PROTECTED]> wrote:
>
> Hi,
>
> I have two doubts hitting my mind:
>
> 1) What is the best way to populate foreign keys into a bean?
>
>   Supposing I have a class Product.
>   Each product has a Category.
>
>   What is the right way:
>
>   beanProduct = serviceProduct.getBean();
>   beanProduct.setName( "It's name" );
>   beanProduct.setCategory( 1 );
>
>   or
>
>   beanCategory = serviceCategory.getBean( 1 );
>
>   beanProduct = serviceProduct.getBean();
>   beanProduct.setName( "It's name" );
>   beanProduct.setCategory( beanCatebory );
>
>   or neither?
>
> I would create a Factory that would create the product, populate it with
> any passed data, as well as creating and populating any composite objects.
> This way the logic for populating the object and resolving its dependencies
> is encapsulated within the factory.
>
>
> 2) In CF community we use to talk about DAOs and Gateways but it doesn't
> seem a widely used pattern.
>   What is the best usage? Have just one DAO as Row Data Gateway and
> Table Data Gateway or use DAO as RDG and Gateways as TDG?
>
> I'd actually say the opposite: not only is it widely used, it may arguably
> be over-used. It's become somewhat common to see every single table in a
> database have corresponding Gateway objects and DAO objects. I personally
> don't separate single-row persistence behavior in a DAO and aggregate
> behavior in a Gateway, I just have a Gateway and it does both. I also don't
> necessarily have separate Gateways for every single table, but rather group
> the behavior logically. So I may have forum, thread, and message tables in
> the database, but I may group the SQL for these together into a
> ForumGateway. In other words, just because the tables are there doesn't mean
> there must be separate DAO and Gateways for every one (nor Services for that
> matter).
>
> Hope that helps?
>
> regards,
>
> Brian
>
>
> Thanks,
> Ronan
>
>
>
>
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
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