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.
