Referencing instances of classes

Question:
How do classes communicate?

If class A created one or more instances of class B and class C, how can class A keep track of all the instances of classes B and C,and how can class A list them in order for a user to be able to perform operations on some of the instances (comparing which one has the smallest value)? And vice-versa: How can the new class B and C tell class A if there was a change of state?

Answer:
Keep in mind that a class does not exist in and of itself; it lives only in its instance. Therefore, you cannot communicate to an object class itselfat runtime. Class instances in OPO do not have creation and destructionevents and cannot be dynamically instantiated, so you will have to have awork-around of sorts to implement this functionality.

It sounds like you want a single controlling instance that is aware of whatis going on in other class instances. In this situation, I would start bycreating a user-defined variable at the application level with a data typeof Object. Make sure the ‘controlling’ instance is created before any ofthe other instances, and set a user-defined variable to the window handle ofthe instance. After the variable is set, subsequent instances cancommunicate with the controller class through the window handle.

You could communicate to the child instances by having a user-definedvariable as part of the instance, walking through the objects in a form(or forms) and using the HasProperty operator to check for theexistence of the variable for each object.

Keep in mind that objects are not destroyed. Even when a window is closed, they continue to exist in memory in case the application needs to accessthem. You may want to set a user-defined property on the child instancesto indicate whether that instance is actually ‘alive.’

Share the Post:
Share on facebook
Share on twitter
Share on linkedin

Overview

Recent Articles: