Mike Yearwood
Toronto, Ontario, Canada
General information
Category:
Object Oriented Programming
Title:
Factory Objects - practical application
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
View the map of this thread
View the map of this thread starting from this message only
View all messages of this thread
View all messages of this thread starting from this message only