Context Sensitive Bindings (was Re: Exception Hierarchies)
Stephan B. Wessels
stephan.wessels at sdrc.com
Tue Aug 17 17:28:57 UTC 1999
Wouldn't it be better to not name the class in it's own class methods? I realize you
were citing examples. Just want to make sure there's isn't some subtlety going on
here that would keep me from subclassing.
Allen Wirfs-Brock wrote:
> "Subclassing Notification is an easy way to make an exception resumable"
> Notification subclass: #Fluid
> instanceVariableNames: "bindingName"
> "class methods"
> named: bindingName value: boundValue do: aBlock
> "Evaluate a block in the context of a fluid binding"
> [aBlock] on: Fluid
> do: [:ex|
> ex bindingName = bindingName ifFalse: [ex pass].
> ex resume: boundValue]
> named: bindingName
> "Get the value of a dynamically bound variable"
> ^(Fluid new named: bindingName) signal
named: bindingName value: boundValue do: aBlock
"Evaluate <aBlock> in the context of our own binding."
[aBlock] on: self do: [:ex |
ex bindingName = bindingName ifFalse: [ex pass].
ex resume: boundValue]
"Get the value of a dynamically bound variable."
^(self new named: bindingName) signal
Talk Small and Carry a Big Class Library
More information about the Squeak-dev