How to use SmartRefStream
Jon Hylands
jon at huv.com
Mon Aug 16 18:45:53 UTC 2004
On Mon, 16 Aug 2004 10:35:29 -0300, "Germán S. Arduino" <gsa at softhome.net>
wrote:
> | rr |
> rr := SmartRefStream fileNamed: 'MyModel.obj'.
> rr nextPut: MyModel someInstance.
> rr close.
In general, this is a bad way to handle sole-instance classes. You should
have a class variable called 'SoleInstance' or 'Current' or something like
that, and write accessor methods on the class side to get and set it:
MyModel class >> #soleInstance
"If you want SoleInstance to self-initialize, un-comment the
following expression:
SoleInstance isNil
ifTrue: [self initializeSoleInstance]."
^SoleInstance
MyModel class >> #soleInstance: aModel
SoleInstance := aModel
That way you always know you have a reference to the instance you want.
Now, when you go to read it in from your file, you can just do this:
| rr |
rr := SmartRefStream fileNamed: 'MyModel.obj'.
MyModel soleInstance: rr next.
rr close.
Now you've got the right instance, and you can reference it from anywhere.
Later,
Jon
--------------------------------------------------------------
Jon Hylands Jon at huv.com http://www.huv.com/jon
Project: Micro Seeker (Micro Autonomous Underwater Vehicle)
http://www.huv.com
More information about the Squeak-dev
mailing list
|