Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Factory Objects - practical application
Message
De
14/12/2006 14:50:00
Mike Yearwood
Toronto, Ontario, Canada
 
 
À
Tous
Information générale
Forum:
Visual FoxPro
Catégorie:
Programmation Orientée Object
Titre:
Factory Objects - practical application
Versions des environnements
Visual FoxPro:
VFP 9 SP1
Divers
Thread ID:
01177742
Message ID:
01177742
Vues:
83
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
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform