Mike Yearwood
Toronto, Ontario, Canada
General information
Category:
Object Oriented Programming
Hi Craig
Long time no see.
>My Factory object gets instantiated during application startup and is referenced in the application object. So, to create a new object, such as what you want:
>
>
>loSafety = goApp.oFactory.Instantiate("SetResetOnOff","SAFETY")
Doesn't that mean that loSafety will be in the datasession that was active at the time of the instantiation of oFactory?
I am looking for a single way which ensures everything instantiates in the current datasession.
I messed up below anyhow.
This
>>loSafety = oFactory.GetClassName("SetResetOnOff"),"SAFETY")
should be
>>loSafety = CreateObject(oFactory.GetClassName("SetResetOnOff"),"SAFETY")
>
>
>>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
Previous
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