[squeak-dev] Re: Two methods sharing source code?
Bernd Elkemann
elkemann at web.de
Tue Jun 3 19:33:48 UTC 2008
Hi!
There are many ways in squeak to have code in 1 place but use it from
many. Of course the most standard way is always a shared superclass; if
that is not possible then there are many other ways...
Adrian Kuhn wrote:
> It is as simple as (iff you ignore tool support)
>
> A compile: 'foo ^ 42'.
> m := A methodDict at: #foo.
> B methodDict at: #bar putNoBecome: m.
> B new bar. "=> 42"
Yep this is fun, and you dont need to learn (proper) Traits.
compare Behavior:#addSelectorSilently:withMethod:
Make sure everything is still working. In fact SystemBrowser will not
show that B has an instancemethod #bar, you have to register the
selector for it to notice, something like that. And code-repositories
and fileouts/changes might not notice anything, so consider it a hack.
You might think that the method is hidden from the squeak user then but
"B selectors" will return an array of selectors including #bar.
Its also fun: B methodDict: A methodDict :-)
Greetings
Bernd
More information about the Squeak-dev
mailing list
|