Singletons (was: Re: [squeak-dev] TheWorldMainDockingBar instance)

Hannes Hirzel hannes.hirzel at gmail.com
Mon Nov 8 14:53:52 UTC 2010


Yes, that is a more general goal. I am happy I somebody takes this one.

At this very moment I for myself just would like everybody to agree
that we can move

TheWorldMainDockingBar instance

to

TheWorldMainDockingBar instance

Is this OK?

On 11/7/10, Chris Muller <asqueaker at gmail.com> wrote:
> FYI, I believe class-inst vars should begin with lower-case by convention.
>
> As far as the singleton's mess, what does anyone think of abstract
> Singleton class with a 'default' (or 'current', 'soleInstance' it
> doesn't matter, we'll just pick one) class-inst var?  And with
> appropriate access, of course.
>
> That way we could have one place where most singletons inherit from.
> I say most because some might need to inherit behavior from another
> class; oh well, hopefully they'll make it consistent with whatever
> would be decided for Singleton.  At least something would exist to be
> consistent with..
>
>
>
> On Sat, Nov 6, 2010 at 2:00 AM, Hannes Hirzel <hannes.hirzel at gmail.com>
> wrote:
>> On 11/6/10, Levente Uzonyi <leves at elte.hu> wrote:
>>> On Sat, 6 Nov 2010, Hannes Hirzel wrote:
>>>
>>>> Hello
>>>>
>>>> The TheWorldMainDockingBar is implemented as a Singleton.
>>>>
>>>> To access the sole instance the method #instance is used. But we have
>>>> 35 implementor of #default and 20 implementors of #current for
>>>> implementing Singletons.
>>>
>>> There's also #soleInstance and probably a few more. Some people like
>>> this,
>>> others like that.
>>> Also some singletons are implemented with a class variable, others use
>>> class instance variables.
>>>
>>>>
>>>> Could somebody please change this the next time?
>>>
>>> You? :)
>>
>> Thank you for the feedback.
>>
>> I just tried to put the changed package Morphic into the inbox; but it
>> gives me a timeout with the current connection (GPRS/EDGE).
>>
>> So what I did
>>
>> a) added a class instance variable   'Default'
>> b) changed the the method #instance to #default and updated it
>> accordingly (in addition instead of 'super new'  just 'self new')
>> c) replaced the call to #instance with #default
>> d) removed method #instance
>> e) removed class variable   Instance
>>
>>
>> --Hannes
>>
>>>
>>> Levente
>>>
>>>>
>>>> And TheWorldMainDockingBar is hard coded 5 places
>>>>
>>>> One thing we could do is to add the method
>>>>
>>>> mainDockingBarClass
>>>>      ^TheWorldMainDockingBar
>>>>
>>>> to MorphicProject
>>>>
>>>> and then replace the hard coded
>>>>
>>>> TheWorldMainDockingBar
>>>>
>>>> with
>>>>
>>>> MorphicProject current mainDockingBarClass
>>>>
>>>>
>>>> This is still hard coded but now offers the option that if I subclass
>>>> MorphicProject I can have another menu there.
>>>>
>>>> What do you think?
>>>>
>>>> Hannes
>>>>
>>>>
>>>
>>>
>>
>>
>
>



More information about the Squeak-dev mailing list