|This is our “contractor”. It
has its memory (state, data). The client initializes the data. Some of the
data is shared with the client, some is not. The contractor also owns
synchronization primitives that protect its (shared) data.
|When designing such an
object, the client defines its data and behavior. The internal behavior is
defined by the implementation of the Run method.
|Once the active object is
declared, the client can create an instance, start its internal processing,
interact with it, and then stop it and delete it.