Henry, this is also generally how I write factories, with one exception. You
mentioned that you subclass this factory to use it's methods - is that what
you meant? I'd compose your factory into whatever object needs it and not
subclass it.

Kevan


On 25 February 2010 04:27, Henry <[email protected]> wrote:

> Currently I'm writing mine like this, imagine there's an entity calls
> Entity, and subclass of entity calls EntityX, EntityY, EntityZ
>
> EntityFactory.cfc:
>
> /** Dependency injection */
> property service;
>
> /** some constant */
> property c;
>
> EntityX function createEntityX(required a)  {
>   var x = new EntityX();
>
>   x.setService(s);
>   x.setConstant(c);
>   x.setA(a);
>
>   return entityX;
> }
>
> EntityY function createEntityY(required b)  {
>   // similar stuff
> }
>
> EntityZ function createEntityZ(required c, d)  {
>   // similar stuff
> }
>
> // -------------------- END ----------------------
>
>
> As you can see, I map one class to one method in the Factory.  I like
> it because the user of my API can just browse to this CFC and see all
> the different type of Entity he can create.  Also, since CF9 orm can't
> let us use init() with required argument, I pushed this responsibility
> to the factory.
>
> Currently my EntityService does not have handle any creation, and the
> user of this API needs to get the EntityFactory from Coldspring to
> create instances of EntityX/Y/Z.  It is because I don't want to add 10
> methods in both EntityService and EntityFactory if I have 10 Entity
> subtypes.
>
> What do you think?  Is this bad?
>
> Is this how you usually write your factory?  How can I improve my
> version?
>
>
> Thanks,
> Henry
>
> --
> 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]<cfcdev%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/cfcdev?hl=en.
>
>

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