[Newbies] 'locking' an object

Marcin Tustin mm3 at zepler.net
Thu Oct 2 16:47:23 UTC 2008

Surely if you have a wrapper class which only holds a reference to a single
object that has all of the data, and that has accessors, then the wrapper
can only use the accessors? The data object could have a flag that causes
all of the accessors to throw an exception when it is set.

Or am I missing something?

On 10/2/08, Randal L. Schwartz <merlyn at stonehenge.com> wrote:
> >>>>> "Sean" == Sean Allen <sean at monkeysnatchbanana.com> writes:
> Sean> If you wanted to take a mutable object and make it immutable and be
> able
> Sean> to go back again to mutable, how could you do that?
> Squeak doesn't have that sort of capability.  The immutability of a few
> classes is because the VM recognizes them specially, and not available
> at the programmer level without modifying the VM.
> Other Smalltalk VMs are different.  I think both VisualWorks and GemStone/S
> have primitive bits on an object to be informed when a mutation might be
> attempted.
> You can simulate that *mostly* in Squeak by using a "proxy" object that
> intercepts all messages and looks for the dangerous ones, but that's gonna
> be
> a bit hard to do, and won't be aware of any new code that might call the
> mutating primitives directly.  (*Any* method can call a primitive.)
> --
> Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095
> <merlyn at stonehenge.com> <URL:http://www.stonehenge.com/merlyn/>
> Smalltalk/Perl/Unix consulting, Technical writing, Comedy, etc. etc.
> See http://methodsandmessages.vox.com/ for Smalltalk and Seaside
> discussion
> _______________________________________________
> Beginners mailing list
> Beginners at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/mailman/listinfo/beginners
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/beginners/attachments/20081002/58d53710/attachment.htm

More information about the Beginners mailing list