Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Factory Objects - practical application
Message
From
14/12/2006 14:50:00
Mike Yearwood
Toronto, Ontario, Canada
 
 
To
All
General information
Forum:
Visual FoxPro
Category:
Object Oriented Programming
Title:
Factory Objects - practical application
Environment versions
Visual FoxPro:
VFP 9 SP1
Miscellaneous
Thread ID:
01177742
Message ID:
01177742
Views:
82
Hey all

Assuming we have a need to instantiate an object.

SET CLASSLIB TO xxfwutil.vcx
loSafety = CreateObject("cusPushPopOnOff","SAFETY")

This code is too tightly coupled to the class. If I subclass that class or rearrange the vcxs, I'm in for major reworking.

A factory object is a solution.

loSafety = CreateObject(oFactory.GetClassName("SetResetOnOff"),"SAFETY")

First problem: oFactory must have been instantiated someplace, probably with a segment like:

PUBLIC oFactory
set classlib to blah.vcx
oFactory = Createobject("myfactory")

It seems preferable to have a single table for the factory.

I suppose I have a few choices:
1 - If the application has a table, the factory class could be specified there.

2 - I could have a UDF that instantiated the factory by looking in the same table. That seems like redundant code.

3 - How about the factory object calls that same UDF?

PUBLIC oFactory
oFactory = CreateObject(UDFGetClassName("Factory"))
.
.
.
loSafety = oFactory.GetClassName("SetResetOnOff"),"SAFETY")

and inside GetClassName...

lparameters tcClassName
lcClassName = UDFGetClassName(m.tcClassName)

Any body see anything wrong with that?

Thanks
Next
Reply
Map
View

Click here to load this message in the networking platform